主键也是索引吗?
Is primary key also index?
- 对
mysql
数据库 table 列的 primary key
约束是否自动意味着在给定列上创建了索引?
- 如果是,我们能否将其推广到任何数据库,或者它仅取决于数据库实现?
- 如果是,而且如果主键是复合的,是否为每个 each 这样的列创建了索引?
- 在已经是
primary key
的列上通过 key
约束创建(附加?)索引是否有意义?
- 是的,
primary key
也是 MySQL 中的索引。
The primary key for a table represents the column or set of columns that you use in your most vital queries. It has an associated index, for fast query performance.
https://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html
主键和唯一索引的区别可以看:difference between primary key and unique key
- 不,您将有两个索引,它会占用更多磁盘 space。
在 MySQL 中,PRIMARY 或 UNIQUE KEY 在约束中定义的列上创建索引。如果有多个列,则创建一个复合索引。
如果它是 InnoDB table,主键也会成为 table 的聚集索引。
添加与 PRIMARY/UNIQUE 具有相同定义的额外索引没有意义。
对于其他 RDBMS,这些约束需要索引。即使您被允许在没有适当索引的情况下创建约束,也需要它来获得任何合理的性能。
- 对
mysql
数据库 table 列的primary key
约束是否自动意味着在给定列上创建了索引?- 如果是,我们能否将其推广到任何数据库,或者它仅取决于数据库实现?
- 如果是,而且如果主键是复合的,是否为每个 each 这样的列创建了索引?
- 在已经是
primary key
的列上通过key
约束创建(附加?)索引是否有意义?
- 是的,
primary key
也是 MySQL 中的索引。
The primary key for a table represents the column or set of columns that you use in your most vital queries. It has an associated index, for fast query performance.
https://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html
主键和唯一索引的区别可以看:difference between primary key and unique key
- 不,您将有两个索引,它会占用更多磁盘 space。
在 MySQL 中,PRIMARY 或 UNIQUE KEY 在约束中定义的列上创建索引。如果有多个列,则创建一个复合索引。
如果它是 InnoDB table,主键也会成为 table 的聚集索引。
添加与 PRIMARY/UNIQUE 具有相同定义的额外索引没有意义。
对于其他 RDBMS,这些约束需要索引。即使您被允许在没有适当索引的情况下创建约束,也需要它来获得任何合理的性能。