mysql索引

索引

建立索引就是对数据进行排序,排序就是比较大小,B+树其实就是帮助我们排序的一种数据结构。

使用索引

where条件能否利用索引本质上就是看此条件能不能和某个B+树索引进行比较大小。

B+树

B+ 树是一种树数据结构,是一个n叉树,每个节点通常有多个孩子,一颗B+树包含根节点、内部节点和叶子节点。B+ 树通常用于数据库和操作系统的文件系统中。 B+ 树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。 B+ 树元素自底向上插入。

主键索引
[图片上传失败...(image-2109eb-1585493000834)]

其他索引
[图片上传失败...(image-10b319-1585493000834)]
select * 时,最后会进行回表操作(主键索引找叶子节点)

最左前缀原则

本质上就是对由多个字段联合组成对复合字段进行比较大小,类似字符串比较大小,只有给定了最左侧的字段,才能去比较后续的字段。

全表扫描

在Innerdb中,表中所有的行数据都在主键索引的叶子节点中,所以全表扫描就是扫描主键索引的叶子节点。

覆盖索引

对于某一个SQL在执行时,如果发现所要查询的数据在某一个索引上也存在时(除开主键索引),那么就可以直接利用这个索引进行查询获取数据,而不需要回表。

索引条件

当某些条件因为不符合最左前缀原则时,无法参与索引的执行时,在Mysql5.7之前,该条件会在索引数据回表后在Mysql Server层执行然后过滤数据;而在Mysql5.7之后,该条件会在索引执行后,回表前执行过滤条件,相当于该条件的执行下沉了,也可以叫索引条件下推。

Mysql运算

在Mysql中,数字于字符串进行运算时,统一会将字符串转换成数字,非数字字符串会统一转化为0.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 索引 数据库中的查询操作非常普遍,索引就是提升查找速度的一种手段 索引的类型 从数据结构角度分 1.B+索引:传统...
    一凡呀阅读 8,253评论 0 8
  • 转载:http://blog.codinglabs.org/articles/theory-of-mysql-in...
    qf1007阅读 5,093评论 0 0
  • 索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,...
    mysia阅读 3,707评论 0 1
  • 零.索引简介 1. 索引是什么 ①MySQL官方对索引的定义是:索引(Index)是帮助MySQL高效获取数据的数...
    一条路上的咸鱼阅读 4,490评论 0 6
  • 让我们用自己的行和自己的心去教育我们的孩子。一切为了孩子,为了一切孩子,为了孩子的一切。用欣赏的眼光看待孩子,让尊...
    文文Jean阅读 1,882评论 0 0

友情链接更多精彩内容