Mysql--索引

Mysql 系列文章主页

===============

1 索引是什么

Mysql官方对索引的定义:索引是帮助 Mysql 高效获取数据的数据结构。所以,索引的本质:索引是数据结构。索引的目的在于提高查询效率,可类比字典。

索引:排好序的快速查找数据结构

用于:排序 + 快速查找。注意,是两种功能。

数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。

索引通常是指B树索引。

2 索引优势

类似大学图书馆书目索引,提高数据检索的效率,降低数据库的 IO 成本;

通过索引列对数据进行排序,降低数据排序的成本,降低了 CPU 的消耗;

3 索引劣势

索引也是一张表,保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用磁盘空间的;

虽然提高了查询速度,但是会降低更新速度,如 INSERT、UPDATE、DELETE 操作;

4 哪些情况适合建索引

  • 主键自动建立唯一索引
  • 频繁作为查询条件的字段应该创建索引
  • 查询中与其它表关联的字段,外键关系建立索引
  • 查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度
  • 查询中统计或者分组字段

5 哪些情况不适合建索引

  • 频繁更新的字段
  • Where 条件中用不到的字段
  • 表记录太少
  • 经常增删改的表
  • 散列太小的字段,如性别、国籍

======下一篇======

Mysql--执行计划 Explain

posted @ 2018-04-24 11:53  cyhbyw  阅读(343)  评论(0编辑  收藏  举报