为什么 InnoDB 选择了 B(B+)树索引而不是哈希索引?
資深大佬 : Newyorkcity 5
今天面试官问的问题。。我想了一下。。。
哈希索引的删除,查找应该都是 O(1)的吧?新增可能碰上哈希冲突,但如果学习 java 的 HashMap,在拉链法的基础上,当拉链拉得太长时,将拉链转换为红黑树,新增好像效率也还行吧? O(1)+O(logn)的效率?
那是因为修改?如果修改到构成哈希索引的字段的值会导致哈希要重新计算?但如果使用时聚簇索引使用哈希,一般是建立在 ID 这种主键上的,这种主键一般都没有修改的可能吧?
如果不是增删改查性能上有优势的话理由是什么呢?
谢谢
大佬有話說 (16)