diff --git "a/docs/database/MySQL\346\225\260\346\215\256\345\272\223\347\264\242\345\274\225.md" "b/docs/database/MySQL\346\225\260\346\215\256\345\272\223\347\264\242\345\274\225.md" index d797144ec216762facd0df9f2179e95fee705746..29ee12722c6a87cb436e2a2d384b9c8c43c6faed 100644 --- "a/docs/database/MySQL\346\225\260\346\215\256\345\272\223\347\264\242\345\274\225.md" +++ "b/docs/database/MySQL\346\225\260\346\215\256\345\272\223\347\264\242\345\274\225.md" @@ -26,7 +26,7 @@ 哈希表是键值对的集合,通过键(key)即可快速取出对应的值(value),因此哈希表可以快速检索数据(接近 O(1))。 -**为何能够通过 key 快速取出 value呢?** 原因在于 **哈希算法**(也叫散列算法)。通过哈希算法,我们可以快速找到 value 对应的 index,找到了 index 也就找到了对应的 value。 +**为何能够通过 key 快速取出 value呢?** 原因在于 **哈希算法**(也叫散列算法)。通过哈希算法,我们可以快速找到 key对应的 index,找到了 index 也就找到了对应的 value。 ```java hash = hashfunc(key) @@ -52,7 +52,7 @@ index = hash % array_size 试想一种情况: ```java -SELECT * FROM tb1 WHERE id < 500;Copy to clipboardErrorCopied +SELECT * FROM tb1 WHERE id < 500; ``` 在这种范围查询中,优势非常大,直接遍历比 500 小的叶子节点就够了。而 Hash 索引是根据 hash 算法来定位的,难不成还要把 1 - 499 的数据,每个都进行一次 hash 计算来定位吗?这就是 Hash 最大的缺点了。