一、索引优缺点
索引是一个排好序的查找数据结构
- 优点
加快查找,降低io
降低排序成本,降低cpu功耗 - 缺点
占空间
降低了更新速度
二、索引的分类
2.1单值索引
create index indexname on tablename(columnname(length));
drop index [indexname] on tablename;
show index from tablename
2.2唯一索引
列值必须唯一,可以包含空值
create unique index indexname on tablename(columnname(length));
2.3复合索引
create index indexname on tablename(columnname(length),columnname(length),columnname(length));
三、索引结构
3.1 bTree
B树相对于B+树的优点是,如果经常访问的数据离根节点很近,而B树的非叶子节点本身存有关键字其数据的地址,所以这种数据检索的时候会要比B+树快。
image.png
3.2 b+Tree
B+跟B树不同B+树的非叶子节点不保存关键字记录的指针,只进行数据索引,这样使得B+树每个非叶子节点所能保存的关键字大大增加;
B+树叶子节点的关键字从小到大有序排列,左边结尾数据都会保存右边节点开始数据的指针。
image.png
四、创建索引的条件
-
主键自动创建唯一索引
-
频繁查找的数据需要建
-
外键适合建立索引
-
建立时要注意排序内容和分组内容
五、索引的优化原则
- 减少查询嵌套,用小表驱动大表
- 优化时先优化内层循环
- 保证join中,被驱动表join字段已建立索引
网友评论