在MySQL里,聚集索引和非聚集索引分别是什么意思,有什么区别?
在MySQL中,InnoDB引擎表是(聚集)索引组织表(clustered index organize table),而MyISAM引擎表则是堆组织表(heap organize table)。
也有人把聚集索引称为聚簇索引。
当然了,聚集索引的概念不是MySQL里特有的,其他数据库系统也同样有。
简言之,聚集索引是一种索引组织形式,索引的键值逻辑顺序决定了表数据行的物理存储顺序,而非聚集索引则就是普通索引了,仅仅只是对数据列创
本文取材于《高性能MySQL第三版》的第5章,由于索引使用了较多的比较复杂的数据结构,限于篇幅,本文仅对这些数据结构进行简单介绍,如果不清楚的可以自行查资料学习
目录索引类型b-Tree索引哈希索引空间数据索引 (R-Tree)如何构造高性能索引应该考虑的逐步优化前缀索引覆盖索引压缩索引应该小心的谨慎选择:多列单独的索引聚簇索引冗余,重复索引和未使用的索引索引和锁总结
当我们使用
select xx from table where id=x
的时候,不知道你有没有想过,MySql是如何进行查
聚簇,其实是相对于InnoDB这个数据库引擎来说的,因此在将聚簇索引的时候,我们通过InnoDB和MyISAM这两个MySQL的数据库引擎展开。
InnoDB和MyISAM的数据分布对比
CREATE TABLE test (col1 int NOT NULL,
col2 int NOT NULL,
PRIMARY KEY(col1),
KEY(col2));
首先通过以上SQL语句创建出一个表格,其中col1是主键,两列数据均创建了索引。然后我们数据的主键取值为