一.索引是干嘛的
数据库索引是一种数据结构,用于提高数据库表的查询效率。索引存储特定列(或着多列)的值和对应行的指针,使得数据库系统能够更快速地定位和访问数据行。查询的时候可以减少查询时间。
二.索引通过哪些方法让数据访问速度加快的
1.快速定位数据行:
MySQL使用B-tree 索引和哈希索引来提高查询速度,在查数据的时候可以直接定位到符合查询条件的数据行,不需要全部扫描了。
2.减少数据扫描:
有了索引之后在执行查询的时候只查索引中的部分数据,不扫描整个表了。
3.避免排序:
查询涉及到排序,MySQL 可以利用索引中的有序信息,不再对整个结果集进行排序
4.提供唯一性约束:
唯一索引可以使表中数值唯一性,防止插入重复数据,也能够加速唯一性检查的过程。
三.常见的索引方法
1.B-tree索引:
B-tree 索引按顺序存储数据,每个节点包含多个子节点,可以适用于范围查询和模糊查询
2.哈希索引:
哈希索引使用哈希表数据结构,将索引键转换为哈希值,然后映射存储的位置,在等值查询时效率高,不支持范围查询和排序操作。
四.常见的索引分类
1.唯一索引:索引列的值是唯一的,可以为null
2.普通索引:最常见
3.主键索引:设主键自动为主键索引
4.空间索引:存储地理位置时用到
5.空间索引:搜索长文本时好用
五.单列索引和组合索引
单列索引只针对单个列创建的索引,适用于单个列查询时提高查询速度;组合索引是多个列同时创建的索引,适用于查询条件多时的情况,提高查询速度,支持多列的范围查询和排序操作。