Skip to content

Commit 6b71ff4

Browse files
authored
fix typo
1 parent b25adb7 commit 6b71ff4

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

docs/database/mysql/mysql-index.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,13 @@ tag:
3535

3636
哈希表是键值对的集合,通过键(key)即可快速取出对应的值(value),因此哈希表可以快速检索数据(接近 O(1))。
3737

38-
**为何能够通过 key 快速取出 value呢?** 原因在于 **哈希算法**(也叫散列算法)。通过哈希算法,我们可以快速找到 value 对应的 index,找到了 index 也就找到了对应的 value。
38+
**为何能够通过 key 快速取出 value呢?** 原因在于 **哈希算法**(也叫散列算法)。通过哈希算法,我们可以快速找到 key 对应的 index,找到了 index 也就找到了对应的 value。
3939

4040
```java
4141
hash = hashfunc(key)
4242
index = hash % array_size
4343
```
4444

45-
46-
4745
![](https://img-blog.csdnimg.cn/20210513092328171.png)
4846

4947
但是!哈希算法有个 **Hash 冲突** 问题,也就是说多个不同的 key 最后得到的 index 相同。通常情况下,我们常用的解决办法是 **链地址法**。链地址法就是将哈希冲突数据存放在链表中。就比如 JDK1.8 之前 `HashMap` 就是通过链地址法来解决哈希冲突的。不过,JDK1.8 以后`HashMap`为了减少链表过长的时候搜索时间过长引入了红黑树。
@@ -61,7 +59,7 @@ index = hash % array_size
6159
试想一种情况:
6260

6361
```java
64-
SELECT * FROM tb1 WHERE id < 500;Copy to clipboardErrorCopied
62+
SELECT * FROM tb1 WHERE id < 500;
6563
```
6664

6765
在这种范围查询中,优势非常大,直接遍历比 500 小的叶子节点就够了。而 Hash 索引是根据 hash 算法来定位的,难不成还要把 1 - 499 的数据,每个都进行一次 hash 计算来定位吗?这就是 Hash 最大的缺点了。
@@ -111,6 +109,7 @@ InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索
111109
4. **全文索引(Full Text)** :全文索引主要是为了检索大文本数据中的关键字的信息,是目前搜索引擎数据库使用的一种技术。Mysql5.6 之前只有 MYISAM 引擎支持全文索引,5.6 之后 InnoDB 也支持了全文索引。
112110

113111
二级索引:
112+
114113
![](https://img-blog.csdnimg.cn/20210420165254215.png)
115114

116115
## 聚集索引与非聚集索引
@@ -128,9 +127,7 @@ InnoDB 引擎中,其数据文件本身就是索引文件。相比 MyISAM,索
128127
#### 聚集索引的缺点
129128

130129
1. **依赖于有序的数据** :因为 B+树是多路平衡树,如果索引的数据不是有序的,那么就需要在插入时排序,如果数据是整型还好,否则类似于字符串或 UUID 这种又长又难比较的数据,插入或查找的速度肯定比较慢。
131-
2. **更新代价大** : 如果对索引列的数据被修改时,那么对应的索引也将会被修改,
132-
而且况聚集索引的叶子节点还存放着数据,修改代价肯定是较大的,
133-
所以对于主键索引来说,主键一般都是不可被修改的。
130+
2. **更新代价大** : 如果对索引列的数据被修改时,那么对应的索引也将会被修改,而且聚集索引的叶子节点还存放着数据,修改代价肯定是较大的,所以对于主键索引来说,主键一般都是不可被修改的。
134131

135132
### 非聚集索引
136133

0 commit comments

Comments
 (0)