MySQL关于分页较多的情况的优化limit xxxx,xx
2017-03-20 09:24
459 查看
IT圈的那些事儿 2017-03-20 08:05
我们会经常遇到数据量比较大,然后分页的时候用limit xxxx,xx ,如果offset比较大的话,会发现查询巨慢无比。下面就开始讨论如果offset较大的时候该怎么优化。
首先看测试表为用户的日志表。里面的数据一共是1047946条。
然后我们用
select value1,value2 from logs order by ctime limit 9750,20;
进行查询,会发现时间很慢。
然后进行explain分析,进行了文件排序。下面开始优化。
优化方法一:调整sort_buffer_size为64M。原来的配置是10M,然后重启mysql。
然后在进行查询,会发现时间快了很多。
优化方法二:还有一种方法是对sql语句进行优化。把优化语句修改成下面这种
select value1,value2 from logs inner join (select id from logs order by ctime limit 9750,20) as a using(id);
然后开始进行查询。会发现速度比上一种方法还快。这种叫延迟关联,大家可以自行了解,原理就不赘述。
如果大家遇到以上问题,可以试着我这个思路优化一下看一看。当然了还可以一开始避免这种情况的出现。
我们会经常遇到数据量比较大,然后分页的时候用limit xxxx,xx ,如果offset比较大的话,会发现查询巨慢无比。下面就开始讨论如果offset较大的时候该怎么优化。
首先看测试表为用户的日志表。里面的数据一共是1047946条。
然后我们用
select value1,value2 from logs order by ctime limit 9750,20;
进行查询,会发现时间很慢。
然后进行explain分析,进行了文件排序。下面开始优化。
优化方法一:调整sort_buffer_size为64M。原来的配置是10M,然后重启mysql。
然后在进行查询,会发现时间快了很多。
优化方法二:还有一种方法是对sql语句进行优化。把优化语句修改成下面这种
select value1,value2 from logs inner join (select id from logs order by ctime limit 9750,20) as a using(id);
然后开始进行查询。会发现速度比上一种方法还快。这种叫延迟关联,大家可以自行了解,原理就不赘述。
如果大家遇到以上问题,可以试着我这个思路优化一下看一看。当然了还可以一开始避免这种情况的出现。
相关文章推荐
- 关于mysql的limit用于分页查询的优化
- MySQL limit 分页查询优化(数据量非常大的情况)
- 关于MySQL的LIMIT 语法小优化!
- Mysql limit 优化,百万至千万级快速分页,
- Mysql limit 优化,百万至千万级快速分页,--复合索
- mysql limit分页优化方法分享
- 关于MySQL的LIMIT 语法小优化
- 关于MySQL的LIMIT 语法小优化!
- mysql、MS SQL关于分页的sql查询语句 limit 和row_number() OVER函数
- 如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案!(zz)
- MySQL Limit 性能优化及分页数据性能优化
- mysql分页limit优化
- mysql limit 优化 百万至千万级快速分页 –复合索引的引用并应用于轻量级框架
- mysql limit 分页语句的优化
- 【转】 Mysql limit 优化,百万至千万级快速分页,--复合索引的引用并应用于轻量级框架
- 【转】Mysql limit 优化,百万至千万级快速分页,–复合索引的引用并应用于轻量级框架
- (纯属转贴,没有测试过)如何优化Mysql千万级快速分页,limit优化快速分页
- mysql limit分页优化方法分享
- 关于MySQL数据量增加变化不大时,一种分页的优化方案
- mysql limit 分页简单优化