如何看网站有没有备案,眉山专业网吧设计公司,盘锦网站推广,wordpress 修改个人资料MySQL中的聚集索引和非聚集索引的主要区别在于它们的存储方式和使用方式。
聚集索引#xff08;Clustered Index#xff09;#xff1a; 聚集索引的叶子页包含了行的全部数据。 每个表只能有一个聚集索引#xff0c;因为一个表中的数据只能按照一种方式存储。 当你查询的…MySQL中的聚集索引和非聚集索引的主要区别在于它们的存储方式和使用方式。
聚集索引Clustered Index 聚集索引的叶子页包含了行的全部数据。 每个表只能有一个聚集索引因为一个表中的数据只能按照一种方式存储。 当你查询的列在聚集索引中那么MySQL不需要进行额外的查找就能直接获取数据。
非聚集索引Non-Clustered Index 非聚集索引的叶子页包含了行的主键值。 非聚集索引的叶子页同时包含了一个书签bookmark该书签指向聚集索引中的对应行。 当你查询的列不在非聚集索引中时MySQL需要通过非聚集索引找到聚集索引中的数据。
实例代码
CREATE TABLE People (PersonID int NOT NULL,FirstName varchar(30) NOT NULL,LastName varchar(30) NOT NULL,BirthDate datetime NOT NULL,PRIMARY KEY (PersonID),INDEX (LastName, FirstName, BirthDate)
);
在这个例子中PRIMARY KEY (PersonID)创建了聚集索引而INDEX (LastName, FirstName, BirthDate)创建了非聚集索引。如果查询中使用到PersonID聚集索引那么可以直接从索引中获取数据。而如果查询中使用到LastName、FirstName或BirthDate非聚集索引列则需要通过非聚集索引先找到聚集索引再获取数据行。