什么是主键什么是聚集索引什么是非

2025-04-16 09:21:44
推荐回答(1个)
回答1:

InnoDB按照主键进行聚集,如果没有定义主键,InnoDB会试着使用唯一的非空索引来代替。如果没有这种索引,InnoDB就会定义隐藏的主键然后在上面进行聚集。

所以,对于 聚集索引 来说,你创建主键的时候,自动就创建了主键的聚集索引。

而普通索引(非聚集索引)的语法,大多数数据库都是通用的:

CREATE INDEX Syntax

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[index_type]
ON tbl_name (index_col_name,...)
[index_type]

index_col_name:
col_name [(length)] [ASC | DESC]

index_type:
USING {BTREE | HASH | RTREE}

[java] view plaincopy
-- 创建无索引的表格
create table testNoPK (
id int not null,
name varchar(10)
);
-- 创建普通索引
create index IDX_testNoPK_Name on testNoPK (name);