我有一個擁有170,000條記錄的擁抱表。sql查詢限制行數之間的性能差異
是什麼這個查詢之間的區別
Showing rows 0 - 299 (1,422 total, Query took 1.9008 sec)
SELECT 1 FROM `p_apartmentbuy` p
where
p.price between 500000000 and 900000000
and p.yard = 1
and p.dateadd between 1290000000 and 1320000000
ORDER BY `p`.`id` desc
limit 1669
解釋
這一個:
Showing rows 0 - 299 (1,422 total, Query took 0.2625 sec)
SELECT 1 FROM `p_apartmentbuy` p
where
p.price between 500000000 and 900000000
and p.yard = 1
and p.dateadd between 1290000000 and 1320000000
ORDER BY `p`.`id` desc
limit 1670
解釋:
這兩查詢正在使用同一數據的一個表,並具有相同的地方clasue,但只有限制行數不同
有同樣的頁面緩存在MySQL?這在SQL Server中很常見,因爲數據在內存中,第二次運行速度更快。 – JNK 2012-04-09 16:01:37
tnx for answer。我如何禁用這個緩衝區進行排序? – Hamidreza 2012-04-09 16:05:32
你可以設置'@@ sort_buffer_size',但這是一個破解。有一件事要嘗試的是「選擇...使用指數(碼)」,以確保使用更快的策略;看看'EXPLAIN'說了些什麼。 – Amadan 2012-04-09 16:14:53