哈希:缺点如图1,
优点: 是存储在内存里面,读取非常非常快
二叉树: 无序, 叶子节点会重复, 导致层数变多,增加IO,查询效率变慢
B树:有序, 叶子不重复, 但是指针,key和data都存放在一个块里面, mysql默认一个分块16KB,所以还是会分很多层级,所以有了B+树
B+树: data放在最底层的叶子节点, 上面的节点能存放的指针,key更多了, 不用分层也就查询快了
注意:
1, 一般情况下,3-4层的B+树足以支撑千万级数据
2, int占用4个字符, 如果超过不超过4个字节, 建议用vachar,因为vachar能指定字节
3, 建议用主键自增, 这样方便内存去有序查找