MySQL 索引 是什么?
索引是一个单独的、存储在 磁盘上的 数据库结构 ,包含着对数据表里 所有记录的 引用指针。
MySQL中索引的存储类型有两种,即 BTree 和 Hash。
索引是在存储引擎中实现的。(MySQL 的存储引擎有:InnoDB、MyISAM、Memory、Heap)
InnoDB / MyISAM 只支持 BTree 索引
Memory / Heap 都支持 BTree 和 Hash 索引
索引 的优缺点有哪些?
优点:
提高数据的查询的效率(类似于书的目录)
可以保证数据库表中每一行数据的唯一性(唯一索引)
减少分组和排序的时间(使用分组和排序子句进行数据查询)
被索引的列会自动进行分组和排序
缺点:
占用磁盘空间
降低更新表的效率(不仅要更新表中的数据,还要更新相对应的索引文件)