2
0
Fork 0
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:
songzhibin97 2022-04-15 11:00:06 +08:00 committed by GitHub
parent b33f38c252
commit e60b97f765
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

2
ch3.md
View file

@ -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】。
与任何类型的数据重复一样,聚集索引和覆盖索引可以加快读取速度,但是它们需要额外的存储空间,并且会增加写入开销。数据库还需要额外的努力来执行事务保证,因为应用程序不应看到任何因为重复而导致的不一致。