MySQL索引是什么?
mysql官方对索引的定义为:索引(INDEX)是帮助mysql高效获取数据的数据结构。
可以得到索引的本质:索引是数据结构。
拥有排序和查找两大功能,用于解决where和order by后面字段是否执行快。
可以简单理解为“排好序的快速查找数据结构”
详解(重要):
有的时候当某条数据不需要时会将该数据active状态改成非激活状态只是逻辑上进行删除并未真正从物理上删除主要是为了数据分析和索引
update慢是因为数据在改,索引也在改,所以频繁删除改的数据不适合建索引,索引也常常需要维护。
一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。
我们平常所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一定是二叉的)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。当然,除了B+树这种类型的索引之外,还有哈稀索引(hash index)等。