我使用mysql工作台运行这两个查询:
SELECT bussId FROM tempBusiness order by bussId ASC limit 250000 ,1
SELECT bussId FROM tempBusiness order by bussId ASC limit 1 ,1
第一个没有完成运行,第二个非常快地返回bussId(0.096秒/ 0.000016秒)。
以下是上述两个查询的解释:
1
2
可能是什么问题?
答案 0 :(得分:0)
为了在索引列中获得N
的偏移量,它必须按顺序扫描索引。如果偏移量很小,则会很快完成。但要获得像250000
这样的非常大的索引,它必须将索引中的许多条目加载到内存中。
我认为没有任何好方法可以优化它。如果您有顺序ID字段,则可以使用WHERE id = 250000
而不是LIMIT
。