我有一个拥有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