1.索引作用是什么?使用什么数据结构存储?
【作用】:加快数据检索
【数据结构】:B+树
mysql的innodb在进行数据读取的时候也是和页相关的,datapagesize,默认是16KB。
索引存储是k-v格式的,即索引-行数据,那么常见可以选择的数据结构有:hash表、二叉树、B树、B+树。
链表:查询时,时间复杂度比较高,效率低
hash表:需要很优良的hash算法避免数据散列带来的浪费空间和查询快慢不均匀,并且hash表是无序的,相当于全表扫描,但是由于hash是在内存中进行的,所以即使如此依旧很快,但是核心问题就是在内存中太消耗内存
。
即:1.算法要求高;2,只能进行等值查询,不支持范围查询;3.当数据量很大时,比较费内存
二叉树、平衡二叉树、红黑树:都是二叉树,当数据量很大的时候,树的层级就会很深,查找的次数会很大。会影响效率