我有一个看起来像这样的查询:
SELECT picture_path, profile_picture, username FROM users
WHERE profile_picture IS NOT NULL
AND settings LIKE '1,%'
AND last_visit BETWEEN CURDATE() - INTERVAL 9 DAY AND CURDATE()
AND signup_date < CURDATE() - INTERVAL 10 DAY
ORDER BY RAND()
LIMIT 15");
这个查询可能很慢,我想尽可能地优化它。
我是否应该为此查询中使用的所有字段编制索引(它们的多索引?)
ORDER BY RAND() 最有可能减慢查询速度吗?你会推荐什么替代方案?
数据库中有大约 700,000 条记录。
当我解释查询时,我得到http://screencast.com/t/Opdx3fJ80