8
我如何优化MySQL的ORDER BY RAND()函数?
我想优化查询,以便进行调查mysql-slow.log。 我的大多数慢查询都包含ORDER BY RAND()。我找不到解决此问题的真正解决方案。MySQLPerformanceBlog有一个可能的解决方案,但我认为这还不够。在优化不佳(或频繁更新,用户管理)的表上,该表不起作用,或者我需要运行两个或多个查询才能选择PHP生成的随机行。 这个问题有解决方案吗? 一个虚拟的例子: SELECT accomodation.ac_id, accomodation.ac_status, accomodation.ac_name, accomodation.ac_status, accomodation.ac_images FROM accomodation, accomodation_category WHERE accomodation.ac_status != 'draft' AND accomodation.ac_category = accomodation_category.acat_id AND accomodation_category.acat_slug != 'vendeglatohely' AND ac_images != 'b:0;' ORDER BY RAND() LIMIT 1