mysql索引(b+tree)小记
生活随笔
收集整理的这篇文章主要介绍了
mysql索引(b+tree)小记
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
索引:快速检索的数据结构,缺点是插入时要创建索引树,所以索引不能太多
1.hash O(1)
时间复杂度低
有冲突,不支持范围查询,不支持排序
2.二叉树BST 平衡树:O(logn)
缺点:当树不平衡时,相对于没有索引
3.红黑数
相对二叉树,相对平衡
插入逐渐增大时,也会有右倾,也不是很平衡
4.b+tree
多路自平衡搜索树,解决红黑树和二叉树的缺点
Degree(3–>7)
底部是链表
天然契合innoDb的缓存(index page),减少io次数(利用空间局部性)
mysql索引:(引擎:表级别的)
myISAM引擎(非聚集索引)
frm文件:创建表的文件,
myd文件:表的数据文件
myi:表的索引文件
非聚集就是索引和数据不在同一个文件
树的子节点,存的是数据的物理地址
innoDB引擎(聚集索引)(锁级别高,支持事务)
frm文件:创建表的文件
idb文件:索引+数据
聚集就是索引和数据在同一个文件
主键索引树的子节点,存的是数据内容
非主键索引树的子节点,存的是数据主键(偷懒性:降低存储空间,减少索引的创建,提高插入效率)
重复度高的字段,不建议用索引,原因是用不了mysql缓存,io次数没有变
总结
以上是生活随笔为你收集整理的mysql索引(b+tree)小记的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: [前台]---关于input标签的val
- 下一篇: [数据库]-----记一次mysql分库