mysql-innodb初步了解

mysql-innodb初步了解(二)

索引

innodb中索引一般都是Btree的实现的,就是B+树。索引跟数据都是存储在B+数上,对于数据树来说,叶子节点上是数据行构成的数据页,节点上都是主键索引;对于索引树来说,叶子节点上是主键索引值,节点上是非聚集索引值,索引页跟数据页上的不管是叶子节点还是非叶子节点,都是16K大小,所以索引字段长度越小,能存放的索引记录越多。

一般我们用索引查询数据的流程是:先从索引中查询到叶子节点,找到命中索引的主键值,然后再从数据树中根据主键值找到对应的数据页,如果我们权标扫描的话,就会有大量的IO出现,导致慢查询场景,索引我们用索引,但是索引使用也是需要考虑的。如果索引的区分度不大,也就是一个索引命中的数据很多,那么索引的效果就不明显,相反还可能因为从索引中获取主键后再去查询数据,因为离散读取导致查询更慢(MMR能优化这个场景)
一般当需要由排序的要求时,优先考虑联合索引,把查询字段跟排序字段构建成联合索引,并且把排序字段放在最后,这样可以利用索引的排序特性避免一次排序,否则出现filesorting,数据查询会很慢。
force index可以强制使用哪个索引,但是不建议用,因为mysql能够很好的优化。
mysql中索引有几种:聚集索引,唯一索引,联合索引,普通索引
聚集索引: 主键索引,数据库中的数据是按照主键的顺序存储的,就是数据树里面非叶子节点内的值都是主键值,主键是唯一的。
唯一索引: 跟普通索引的区别是索引的值是唯一的,但是属于非聚集索引
普通索引: 相比于唯一索引来说,允许索引的值有多个
联合索引: 多个数据列构成一个索引,一般根据使用场景构建
覆盖索引: 当我们搜索的字段在索引中存在时,就不需要再去查询数据表了,所以在构建索引的时候要结合业务场景选择,如果查询的字段通过索引树就能确定,就不需要回表进行二次查询了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值