前一段时间在写分页语句。单机的mysql一般使用:
|
|
这里的问题在于offset如果很大,那么意味着你要扫描整个表。当然如果offset很小,那这个速度还是相当快的。当然替换方案是使用where子句而不使用offset.
|
|
然而对于使用主键做了Range分区,hash分区,或者使用了mysql搭建的分布式数据库。这里的问题在于分区的索引是局部的,而不是全局的。对于limit和offset操作不光要获取到更多的数据,而言看起来也不是很安全。所以建议还是使用对主键进行order by。SQL语句是这样:
|
|
这样才是最保险的.