我有一个看起来像的查询:
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