双11上云狂欢,0.5折起爆品开抢
Logo

博客

2021-12-13 xoyozo 转载请注明出处
SELECT *
FROM `pre_forum_post`
ORDER BY `pid`
LIMIT 1000000, 10
> OK
> 时间: 2.394s


SELECT *
FROM `pre_forum_post` 
WHERE `pid` >= (
		SELECT `pid` 
		FROM `pre_forum_post` 
		ORDER BY `pid` 
		LIMIT 1000000, 1
		)
ORDER BY `pid`
LIMIT 10
> OK
> 时间: 0.207s

测试表数据量 152 万条,测试跳过 100 万取 10 条。

测试一直接使用 limit 跳过 1000000 取 10,耗时 2.4s;

测试二先使用 limit 跳过 1000000 取 1,再使用配合 where 条件,使用 limit 取 10,耗时 0.2s。

两次测试耗时相差约 10 倍。测试取 100 条或取 1 条,耗时都相差约 10 倍。

但若测试跳过条数较小时,测试一效率更高,因此应按照项目的实际需要选择适当的查询方法。

90 阅读