由於使用ORDER BY,所以查詢速度很慢。現在我明白爲什麼它很慢,但我不知道如何讓它更快。使用ORDER BY和LIMIT的查詢非常緩慢
該表有900.000條記錄。 (之所以慢)
SELECT SQL_NO_CACHE id, name
FROM users where is_provider = 0
AND activated_at IS NOT NULL
AND is_ngo = 0
AND deleted_at is NULL
AND is_cancelled = 0
ORDER BY name
LIMIT 60000, 90;
我使用限制,因爲我使用分頁。 SQL_NO_CACHE,因爲我不想使用緩存進行測試。
這個查詢需要60秒,這太長了。這是一個後臺任務,所以如果我可以在5秒內減少它將是好的
我有索引在activated_at列和deleted_at這是時間字段。其他的是布爾值,所以不需要索引。
謝謝
對於閱讀此答案的其他人:我沒有找到有用的文章。總之,除非你對MySQL非常陌生,並且還沒有添加索引,否則我會一直在尋找答案。 – nostromo 2013-02-28 06:21:48