mirror of
https://github.com/Vonng/ddia.git
synced 2026-06-24 10:26:52 +08:00
Update ch3.md
This commit is contained in:
parent
b33f38c252
commit
e60b97f765
1 changed files with 1 additions and 1 deletions
2
ch3.md
2
ch3.md
|
|
@ -310,7 +310,7 @@ B 树在数据库架构中是非常根深蒂固的,为许多工作负载都提
|
|||
|
||||
在某些情况下,从索引到堆文件的额外跳跃对读取来说性能损失太大,因此可能希望将被索引的行直接存储在索引中。这被称为聚集索引(clustered index)。例如,在 MySQL 的 InnoDB 存储引擎中,表的主键总是一个聚集索引,次级索引则引用主键(而不是堆文件中的位置)【31】。在 SQL Server 中,可以为每个表指定一个聚集索引【32】。
|
||||
|
||||
在 **聚集索引**(在索引中存储所有的行数据)和 **非聚集索引**(仅在索引中存储对数据的引用)之间的折衷被称为 **覆盖索引(covering index)** 或 **包含列的索引(index with included columns)**,其在索引内存储表的一部分列【33】。这允许通过单独使用索引来处理一些查询(这种情况叫做:索引 **覆盖(cover)** 了查询)【32】。
|
||||
在 **聚集索引**(在索引中存储所有的行数据)和 **非聚集索引**(仅在索引中存储对数据的引用)之间的折衷被称为 **覆盖索引(covering index)** 或 **包含列的索引(index with included columns)**,其在索引内存储表的一部分列【33】。这允许通过单独使用索引来处理一些查询(这种情况叫做:索引 **覆盖(cover)** 了的查询)【32】。
|
||||
|
||||
与任何类型的数据重复一样,聚集索引和覆盖索引可以加快读取速度,但是它们需要额外的存储空间,并且会增加写入开销。数据库还需要额外的努力来执行事务保证,因为应用程序不应看到任何因为重复而导致的不一致。
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue