当前位置: 首页 > news >正文

微网站 电脑网站 统一网站开发哪家

微网站 电脑网站 统一,网站开发哪家,品牌创意网站建设徕卡e,极速网站建设多少钱MySQL 深度分页优化 理解总结: 分页使用limit ,前提是要排序好的数据,这时候,就推荐使用带索引的字段排序,因为索引是天然有序的,不需要像是无序的字段一样,全表扫描,如果太大的话…

MySQL 深度分页优化

理解总结:

分页使用limit ,前提是要排序好的数据,这时候,就推荐使用带索引的字段排序,因为索引是天然有序的,不需要像是无序的字段一样,全表扫描,如果太大的话,还filesort ,利用文件排序,排序完成之后,才能分页,很慢。但是,如果分页过深的话,比如limit100万,仍然无需要查询到100万数据,中间有大量的io操作(回表查询其它字段),这时候考虑用上子查询,先查到100万位置的往后10条数据(直接用id主键查,因为没有回表,直接索引查,所以很快),然后再关联10条数据,取得完整的数据。

举例:

1. 没有查询条件,没有排序

耗时0.613s

select id,m_id, name, identity_no, address, create_time, modify_time  from t1 limit 1000000, 20;

加上主键排序

耗时0.41

**select** id,m_id, name, identity_no, address, create_time, modify_time  **from** t1 **order** **by** id limit 1000000, 20;

加上主键排序,使用了主键索引,天然有序,所以只读取前n条数据,所以更快

2. 带排序-排序字段没有索引

select id,m_id, name, identity_no, address, create_time, modify_time 
from t1 
order by create_time desc 
limit 10000, 20;

耗时2秒左右

select id,m_id, name, identity_no, address, create_time, modify_time
from t2
order by create_time desc
limit 10000, 20;

与t1基本相同,只是加了索引,耗时0.9s左右

对比:没有索引的表,全表扫描,排序用到filesort 。有索引的话,可以利用索引排序,limit 的话,扫描的数据有少。

3. 排序字段有索引,但是分页很深,从100w开始取20条。

select id,m_id, name, identity_no, address, create_time, modify_time 
from t2 
order by create_time desc 
limit 1000000, 20;

很慢,没有走索引,因为MySQL优化器发现这条sql查询超过一定的比例,就会自动转成全表扫描

加force index(idx),强制走索引。有效果,但是不明显。

结论即使有索引,再深一点的分页也会有问题,要避免

5. 解决方案

联表子查询

-- 改为:
SELECT   id, m_id, NAME, identity_no, address, create_time, modify_time 
FROM t2
JOIN ( SELECT id FROM t2 ORDER BY create_time desc LIMIT 1000000, 20 ) x USING ( id );

变成0.7s;原来15s。

-- 在t1执行:
SELECT   id, m_id, NAME, identity_no, address, create_time, modify_time 
FROM t1
JOIN ( SELECT id FROM t1 ORDER BY create_time desc LIMIT 1000000, 20 ) x USING ( id );

这个也很快,2.8s。原来18s+

分析

直接通过索引树就能拿到查询字段的值,索引快的原因是,子查询查询的方式,减少了回表查询操作,进而减少了大量的回表IO,因为高效。

参考:https://juejin.cn/post/6985478936683610149

http://www.bjxfkj.com.cn/article/110000.html

相关文章:

  • 网站开发与实践题库东台哪家专业做网站
  • 网站开发工具哪个好电子商务是干什么的就业前景
  • 织梦后台搭建网站并调用标签建设网站设计用ps 怎么做
  • 我找伟宏篷布我做的事ko家的网站连云港网页设计
  • 门户网站建设方案ppt门户网站简介
  • 北京网站开发报价wordpress 历史上今天
  • phpcms做网站建栏目长页网站
  • 图书馆建设投稿网站广告设计与制作需要学什么
  • 网站框架是什么网站推广基本方法是
  • 关于建设网站的需求品玩 wordpress主题
  • 长春建站优化余杭网站建设
  • 如何加强网站内容建设百度一下搜索一下
  • 行业网站建设运营代注册各类app
  • 做网站要审核吗北京度seo排名
  • 工作一般做网站视频的工作叫做什么哪里有免费的网站推广软件
  • 怎么做好手机网站开发做算命网站犯法吗
  • 太原网站建设方案策划上海亿网站建设
  • 中国商城网站建设wordpress网站统计代码
  • 东莞万江做网站WordPress目录筛选
  • 建设网站的和服务器自助建站公司
  • 衡水做网站技术网站建设开户行查询
  • 移动端网站和app区别做网站网站盈利会怎么样
  • 免费网站建立餐饮设计公司名字
  • 宜宾建功路桥建设有限公司网站电子杂志制作app
  • qq互联 网站开发西安市阎良区建设局网站
  • 上海手机响应式网站建设设计想学服装设计
  • 产品展示型网站赏析wordpress站点地址无法更改
  • access2003做网站中国设计网官网入口
  • 赣州网站设计图片外链在线生成网址
  • 长沙seo顾问网站seo优化的重要性