猿问

聚集索引和非聚集索引实际上意味着什么?

聚集索引和非聚集索引实际上意味着什么?

我对DB的了解有限,并且只使用DB作为应用程序员。我想知道ClusteredNon clustered indexes..我搜索了一下,发现:

聚集索引是一种特殊类型的索引,它重新排序表中记录的物理存储方式。因此,表只能有一个聚集索引。聚集索引的叶节点包含数据页。非聚集索引是一种特殊类型的索引,其中索引的逻辑顺序与磁盘上行的物理存储顺序不匹配。非聚集索引的叶节点不包含数据页。相反,叶节点包含索引行。

我在里面发现的是聚集索引和非聚集索引之间有什么区别?.

有人能用通俗易懂的英语解释一下吗?


守着星空守着你
浏览 2184回答 3
3回答

慕虎7371278

对于聚集索引,行以与索引相同的顺序物理地存储在磁盘上。因此,只能有一个聚集索引。对于非聚集索引,第二个列表具有指向物理行的指针。您可以有许多非聚集索引,尽管每个新索引都会增加写入新记录所需的时间。如果要返回所有列,则从聚集索引中读取通常更快。您不必先到索引,然后再到表。如果需要重新排列数据,写入具有聚集索引的表可能会慢一些。

炎炎设计

聚集索引意味着要让数据库在磁盘上存储实际上彼此接近的关闭值。这有利于快速扫描/检索属于某些聚集索引值范围的记录。例如,您有两个表,Customer和Order:Customer----------ID Name AddressOrder----------ID CustomerID Price如果您希望快速检索一个特定客户的所有订单,您可能希望在Order表的“CustomerID”列上创建一个聚集索引。这样,具有相同CustomerID的记录将被物理地存储在磁盘(群集)上,从而加快了它们的检索速度。显然,CustomerID上的索引并不是唯一的,所以您要么需要添加第二个字段来“惟一”索引,要么让数据库为您处理这个问题,但这是另一回事。关于多个索引。每个表只能有一个聚集索引,因为这定义了数据的物理排列方式。如果你想打个比方,想象一下有很多桌子的大房间。您可以将这些表放在一起形成几行,或者将它们全部拉到一起形成一个大型会议桌,但不能同时使用这两种方式。一个表可以有其他索引,然后它们将指向聚集索引中的条目,这些条目最终会说明在哪里找到实际数据。
随时随地看视频慕课网APP
我要回答