# MySQL索引及结构
索引是一种用于快速查询和检索数据的数据结构
# 1. 索引介绍
索引的作用就相当于目录的作用。打个比方: 我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位置,然后直接翻到那一页就行了
# 1.1. 优点
- 使用索引可以大大加快数据的检索速度(大大减少的检索的数据量),这也是创建索引的最主要的原因
- 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
# 1.2. 缺点
- 创建索引和维护索引需要耗费许多时间。当对表中的数据进行增删改的时候,如果数据有索引,那么索引也需要动态的修改,会降低 SQL 执行效率
- 索引需要使用物理文件存储,也会耗费一定空间
数据库的索引是为了增加数据库查询的速度。但是也增加创建和维护时间,减慢写入速度
# 1.3. 总结
- 对于非常小的表、大部分情况下简单的全表扫描比建立索引更高效
- 对于中到大型的表,索引就非常有效
- 但是对于特大型的表,建立和维护索引的代价将会随之增长。这种情况下,需要用到一种技术可以直接区分出需要查询的一组数据,而不是一条记录一条记录地匹配,例如可以使用分区技术
索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现
# 2. 数据结构
待补充
# 3. 索引类型
待补充
参考
← MySQL存储引擎 MySQL的SQL优化 →