目录
1 索引的介绍
索引,就是⽤来提⾼数据表中数据的查询效率的。
索引,就是将数据表中某⼀列/某⼏列的值取出来构造成便于查找的结构进⾏存储,⽣成 数据表的 ⽬录
当我们进⾏数据查询的时候,则先在 ⽬录 中进⾏查找得到对应的数据的地址,然后再到 数据表中根据地址快速的获取数据记录,避免全表扫描。
2 索引的分类
MySQL中的索引,根据创建索引的列的不同,可以分为:
主键索引:在数据表的主键字段创建的索引,这个字段必须被primary key修饰,每张表 只能有⼀个主键
唯⼀索引:在数据表中的唯⼀列创建的索引(unique),此列的所有值只能出现⼀次,可以 为NULL
普通索引:在普通字段上创建的索引,没有唯⼀性的限制 组合索引:两个及以上字段联合起来创建的索引
说明 :
1. 在创建数据表时,将字段声明为主键(添加主键约束),会⾃动在主键字段创建主键索 引;
2. 在创建数据表时,将字段声明为唯⼀键(添加唯⼀约束),会⾃动在唯⼀字段创建唯⼀ 索引;
3 创建索引
唯一索引
普通索引
组合索引
全⽂索引
MySQL 5.6 版本新增的索引,可以通过此索引进⾏全⽂检索操作,因为MySQL全⽂检索 不⽀持中⽂,因此这个全⽂索引不被开发者关注,在应⽤开发中通常是通过搜索引擎 (数据库中间件)实现全⽂检索
4 索引使⽤
索引创建完成之后⽆需调⽤,当根据创建索引的列进⾏数据查询的时候,会⾃动使⽤索 引; 组合索引需要根据创建索引的所有字段进⾏查询时触发。
在 命令⾏窗⼝中可以查看查询语句的查询规划:
5 查看索引
6 删除索引
7 索引的使⽤总结
7.1 优点
索引⼤⼤降低了数据库服务器在执⾏查询操作时扫描的数据,提⾼查询效率
索引可以避免服务器排序、将随机IO编程顺序IO
7.2 缺点
索引是根据数据表列的创建的,当数据表中数据发⽣DML操作时,索引⻚需要更新;
索引⽂件也会占⽤磁盘空间;