mysql索引与sql调优探索.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 MYSQL 索引与SQL调优 玄惭 20:53 1 主要内容 Innodb逻辑存储结构 加速查询 加速插入 案例分析 20:53 2 优化顺序 20:53 3 磁盘评估:IOPS 20:53 4 IOPS:每秒进行读写(I/O)操作的次数,衡量随机访问的性能; IOPS类型:顺序读,顺序写,随机读,随机写(顺序读iops最高) 普通SAS:100-200 iops Intel SSD:2000+ (writes) ,5000+ (reads) 主要内容 Innodb逻辑存储结构 加速查询 加速插入 案例分析 20:53 5 Innodb逻辑存储结构 20:53 6 Innodb逻辑存储结构 古荡新村—第5幢—第5层—5-2号—进门第二间房间 第二个房间:对应表中的二行记录; 5-2号:有3个房间,对对应一个page; 第5层楼有2个住户单位,则对应一个extent; 第5幢楼有8个楼层,则对应一个segment; 古荡新村7撞居民楼对应一个tablespace;· Innodb逻辑存储结构 20:53 7 InnoDB 第一索引(primary index) 1.Innodb存储引擎的表就是索引组织表,表中的数据按照主键顺序存放; 2.索引组织表每张表的主键构造一颗B+树,在叶子节点中存放整张表的行记录; 3.所有叶子节点到根节点的高度H都相同,所以又叫平衡树; 4.叶子节点的数据按照key升序排列,节点间是一个双向链表; Innodb逻辑存储结构 20:53 8 InnoDB 主键索引访问成本: 单行查询成本(SELECT): S = h IOPS 单行的更新成本(UPDATE): U = search cost + rewrite data page = (h + 1) Iops 单行的插入成本(INSERT): I = search cost + rewrite index page + rewrite data page I = h + 1 + 1 = (h + 2) Iops 单行删除成本(DELETE): D = search cost + rewrite index page + rewrite data page D = h + 1 + 1 = (h + 2) Iops Innodb逻辑存储结构 20:53 9 • InnoDB 第二索引(secondary index) 1.第二索引(secondary index)同样为B+树, 2.叶子节点包含了索引列key value+相关行对应的主键,通过该主键来访问主表(primary index) 3.第二索引的查找成本: 总共的成本=第二索引查找成本+第一索引查找成本 主要内容 Innodb逻辑存储结构 加速查询 加速插入 案例分析 20:53 10 加速查询 20:53 11 加速查询 .随机读,顺序读 .索引范围扫描,覆盖索引扫描,全表扫描 加速查询 20:53 12 InnoDB: 主键查询: SELECT * FROM tbl WHERE primary_key=10; 1.查询首先从root-》branch-》leaf block-》table records; 2.在leaf block中存放了我们的数据行,并且按照主键pk的顺序进行排序; 3.Root和branch的通常被cache; 4.叶子节点的数据通常需要从磁盘中访问,所以整个过程需要1个IOPS; 加速查询 20:53 13 InnoDB: 第二索引 1.查询通过二级索引的root-》branch-》到叶子节点; 2.通过叶子中存放的pk,然后回主表再通过pk定 位到对应的记录; 3.二级索引中的页块可能不在内存中,需要 从磁盘扫描到内存中,主表对应的记录也可能同样如此; 4.整个过程需要2个IOPS; 加速查询 20:53 14 InnoDB: 非唯一索引 1.一个user_id在二级索引中对应满足3条记录,需要回主表3次; 2.二级索引中3条记录在同一个页块中,需要1个iops,主表查询需要3个iops; 3.整个过程需要4个iops; 加速查询 20:53 15 innodb:范围扫描: 1.二级索引中,满足条件的key在同一页块中,需要1个iops;回主表查询需要3个iops; 2.1 io

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档