索引基础
索引(在MySql中也叫键)是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。
在MySql中,存储引擎用类似的方法使用索引,现在索引中找到对应的值,然后根据匹配的索引记录找到对应的数据行。
索引可以包含一个或者多个列的值。如果索引包含多个列,那么顺序也十分重要,因为MySql只能高效地使用索引的最左前缀列。
存储引擎用不同的方式使用B-Tree索引,性能也各不相同。MyISAM使用前缀压缩技术使得索引更小,InnoDB则按按照原数据格式进行存储。MyISAM索引通过数据的屋里位置引用被索引行,InnoDB根据主键引用被索引行。
哈希索引
哈希索引是基于哈希表实现的,每一行数据,存储引擎都会对所有的索引列算一个哈希码。哈希索引将所有的哈希码存储在索引中,同时哈希表中保存指向每个数据行的指针。