MySQL索引
会自动排序
创建索引 : creat index 索引名 on 表名(字段名)
删除索引 : drop index 索引名 on 表名
概念
索引相当于一本书的目录,通过目录可以快速的找到相应的资源
在数据库里面检索方式有两种
1.全局检索
2.根据索引进行检索
原因:缩小了扫描范围所以提高了效率
索引底层数据结构:B+树
索引虽然可以提高检索效率,但不能随意添加,因为索引也是数据库当中的对象,也需要数据库不断的去维护,具有维护成本。如表中的数据就不适合添加索引,因为数据一旦发生修改,索引需要重新排序。
添加索引是给某个字段,或某些字段添加。
分类
单一索引 单个字段添加索引
复合索引 给多个字段联合起来添加索引
主键索引
唯一索引
添加约束的对象
数据量庞大 (根据客户的需求,满足线上的环境)
该字段很少的DML操作
该字段经常出现在where子句中
注意:主键和unique约束的字段会自动添加索引
效率提高实现原理
通过B树缩小扫描范围,底层索引进行了排序,分区,索引会携带数据在表中的“物理地址”,最终通过索引检索到数据之后,获取到相关联的地址,通过物理地址定位表中数据,效率得到提高。