1. MySQL索引分主键索引 非主键索引, 非主键索引一般也叫二级索引。非主键索引可以分为唯一索引与普通索引
MySQL索引都以B-树的形式保存(平衡多叉树)
以 InnoDB 的一个整数字段索引为例,这个 N 差不多是1200。这棵树高是 4 的时候,就可以存 1200 的 3 次方个值,这已经 17 亿了。
2.一般可以用主键索引就直接用主键索引,原因如下:
防止回表
主键索引叶子节点直接存放整行数据 ,非主键索引叶子节点存放的是主键的值,索引如果使用非主键索引, 需要先从非主键索引(非主键B+数中)找到主键 再使用主键索引找到数据(这就是常说的回表)
3. 为什么提倡使用自增主键
1)因为平衡多叉树的原因,增加和删除数据需要维护B+树, 如果使用自增主键的话, 就可以直接插入到最后一位元素后面。
未完待续