前言
整理了一下关于MySQL索引的相关技术点,然后发出来给大家看看。
正文
索引(Index)是一种帮助MySQL高效获取数据的数据结构,索引的目的在于提高查询效率,可以类比字典。可以简单的理解为“排好序的快速查找数据结构”。
数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。
例:
如果在英汉词典中要找”Super“这个词,我们肯定是先找到”s“然后在”s“下查找”u“,然后再依次找到”per“,最终找到整个词“Super”。
其中每个字母都是一个索引,现在想想如果没有索引是不是要从a-z所有的字母都要找一遍呢。
优点:
1、提高数据检索的效率,降低数据库的IO成本。
2、通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗。
缺点:
1、虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
2、索引是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也要占用空间。
下图就是一种可能的索引方式实例:
1、创建普通索引
单独创建索引,最基本的索引创建
CREATE INDEX 索引名称 ON 表名称(字段名称);
2、创建唯一索引
唯一索引:索引的值必须唯一,但允许为空值。
CREATE UNIQUE INDEX 索引名称 ON 表名称(字段名称);
3、删除索引
DROP INDEX [索引名称] ON 表名称;
4、显示索引信息
SHOW INDEX FROM 表名称;
结束
文章不能写的太长,太长了看不下去,所以我准备分开来写,这篇就是最基础的索引介绍,下一篇介绍一下索引的优化,可能会多写几篇文章。