如何通过RAND()函数优化MySQL的顺序?

如何通过RAND()函数优化MySQL的顺序?

我想优化我的查询,所以我研究mysql-slow.log.

我的大多数缓慢查询都包含ORDER BY RAND()..我无法找到真正的解决办法来解决这个问题。有一个可能的解决方案MySQLPerformanceBlog但我觉得这还不够。对于优化不佳的(或经常更新的、用户管理的)表,它不能工作,或者我需要运行两个或多个查询才能选择PHP-产生的随机行。

这个问题有什么解决办法吗?

一个虚拟的例子:

SELECT  accomodation.ac_id,
        accomodation.ac_status,
        accomodation.ac_name,
        accomodation.ac_status,
        accomodation.ac_imagesFROM    accomodation, accomodation_categoryWHERE   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


临摹微笑
浏览 570回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL