关于mysql索引的优化笔记

为什么使用索引

  • 1、大大减少了服务器需要扫描的数据量
  • 2、帮助服务器避免排序和临时表
  • 3、将随机io变成顺序io

索引的用处

  • 1、快速查找匹配WHERE子句的行
  • 2、从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到最少行的索引
  • 3、如果表具有多列索引,则优化器可以使用索引的任何最左前缀来查找行
  • 4、当有表连接的时候,从其他表检索行数据
  • 5、查找特定索引列的min或max值
  • 6、如果排序或分组时在可用索引的最左前缀上完成的,则对表进行排序和分组
  • 7、在某些情况下,可以优化查询以检索值而无需查询数据行

索引的分类

主键索引

  • 主键索引树上挂着数据,其他索引上面挂着主键的值,如果不用主键去检索数据的话,就可能发生回表的现象

唯一索引

  • 1.主键索引一定是唯一索引,唯一索引不一定是主键索引,
  • 2.唯一索引可以为空,主键索引不能为空

普通索引

全文索引

  • 只在char、varchar和text的字段上
  • 之前只在myisam,mysql5.6及其以后开始支持Innodb
  • FULLTEXT KEY name (name,nickname)

组合索引

  • 例如(age,name),这样的组合索引,会使用最左匹配的方式去使用组合索引,如果左边的索引没有匹配上,那么就会不会用到索引——这就是最左匹配原则
  • 最左匹配原则

索引的延伸

回表

当通过非主键索引去查询的数据中不包含主键,这个时候就会先去查询出主键的值,再通过主键的值回到主键索引值去查询对应主键的数据,这个现象就是回表

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值