使用当当sharding-jdbc分表,Mysql LIMIT分页的优化方案

当当sharding-jdbc官方文档,分表分页的性能问题以及优化方案 http://shardingjdbc.io/1.x/docs/02-guide/subquery/

通过记录上次查询结果的最后一条记录的ID进行下一页的查询:

SELECT * FROM t_order WHERE id > 100000 LIMIT 10

因此,衍生出另一个问题,如何获取上次查询结果的最后一条记录的ID?

暂时的SQL写法有两种:

1)

	

2)

        

参考下面文章,里面有详细分析max和limit 10000,1 两种方法的比较

http://database.51cto.com/art/201005/200395.htm

文章的结果如下:

第1句执行结果.100 rows in set (0.23) sec

第2句执行结果.100 rows in set (0.19) sec

自己也测试过,结果如下:

使用当当sharding-jdbc分表,Mysql LIMIT分页的优化方案_第1张图片

只是依据简单的测试结果,limit 10000,1的性能好于用max,MySQL5.0中Mysql limit性能应该作了优化。

下面是查询的SQL用于替代limit:

	



你可能感兴趣的:(使用当当sharding-jdbc分表,Mysql LIMIT分页的优化方案)