
https://www.bilibili.com/video/BV1iq4y1u7vj?p=115
1.为什么使用索引
索引的作用:减少磁盘I/O次数
排好序的快速查找数据结构
(1)创建和维护耗时
(2)索引站磁盘空间
(3)更新表时,需要维护索引,耗时
https://www.bilibili.com/video/BV1iq4y1u7vj?p=116&spm_id_from=pageDriver
声明:索引在具体的存储引擎中实现,不同存储引擎中 索引底层数据结构是不同的;5.5之后默认使用InnoDB,所以这里讲解InnoDB的索引
先来看一个精准匹配的sql:
select 【列名列表】from 表名 where 列名 = xxx;1.在一个页中查找
底层是链表结构,一个记录对应一个节点 2.在很多页中查找
数据页之间是双链表结构,一页为一个节点一个书架就相当于一个数据页 3.2 设计索引
至此,针对数据页做的简易目录就搞定了;这个目录有一个别名,就叫做索引
每一个节点表示一次IO
树的层次越低,IO次数越少;因为每一个页是一次IO
https://www.bilibili.com/video/BV1iq4y1u7vj?p=118&spm_id_from=pageDriver
所以InnoDB中,.idb文件既有数据也有索引,二者存储在一起,是聚簇索引MyISAM就是非聚簇索引
索引只分为聚簇索引和非聚簇索引;
联合索引指的是用多个字段联合作为索引key,因此若不是联合主键,联合索引就是非聚簇索引;
确保索引唯一,才能找到插入的位置;
所以二级索引的索引其实是非主键+主键
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)