簡體   English   中英

如果主鍵是表中的聚集索引,那么其他列是例如任何唯一列是非聚集表嗎?

[英]If primary key is clustered index in a table then the other columns are eg any unique column is a table is non clustered?

CREATE TABLE people(
personID int,
FirstName VARCHAR(255),
LastNanme VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)
PRIMARY KEY (PERSONID)
);

是的,給定的表只能有一個聚簇索引,在 InnoDB 中,它始終是主鍵。 該表上的所有其他索引都是非聚集索引。

聚集索引還存儲表的所有列,包括非索引列,因此在您的示例中,名字、姓氏、地址和城市作為字段存儲在聚集索引的葉節點中。

二級索引僅存儲索引列和表的主鍵。 因此,通過二級索引搜索表的所有列將執行兩次索引搜索:首先在二級索引中找到您正在搜索的值,這將在您正在搜索的值所在的行中產生主鍵值發生。 其次,主鍵值將用於搜索聚集索引,以獲取其他非索引列。 InnoDB 存儲引擎自動執行這兩個步驟,並將所有列提供給您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM