索引是Mysql高效获取数据的排好序的数据结构
索引数据结构:
# 二叉树: (key:34 ,value:0*07)
问题点:单边排序,这样走索引也要6次才能查找到col1=6
红黑树: (自旋平衡二叉树)(2优化1)
问题点:数据量大,高度高
Hash表: (Col=6.会把6通过hash计算得到值,去此列中对比一次IO就可以拿出来)
问题点:性能高但是不能范围的
B-Tree:(B数+Tree)
SHOW GLOBAL STATUS LIKE ‘Innodb_page_size’;
Mysql一般用的就是这两种
3次可以查找到2000w的数据…Mysql一般会把根节点从储存到内存中,相当于2此可以查找2000w的数据,一般2-4个高度之间.在多了可以分库分表
从磁盘上查找数据叫做一次磁盘IO(就是查找一行,把数据从磁盘弄到内存,比较慢)
没有索引查到数据也会跑全表
一次磁盘IO和计算机交付最多4K(一般)