一尘不染

如何使用MySQL索引列?

sql

什么时候使用每种MySQL索引类型?

  • PRIMARY-主键列?
  • 唯一-外键?
  • 指数 - ??

对于非常大的表,索引列是否可以提高性能?


阅读 149

收藏
2021-03-17

共1个答案

一尘不染

基本的

主键是-顾名思义-
表的主键,并且应该是一列,通常用于选择该表的行。主键始终是唯一键(唯一标识符)。主键不限于一列,例如在参考表(多对多)中,具有包含两列或更多列的主键通常是有意义的。

独特的

唯一索引可确保您的DBMS不接受此列的重复条目。您问“外键?” 不!这将是无用的,因为根据定义,外键易于重复(一对多,多对多)。

指数

可以将其他索引放在通常用于SELECTS(和JOINS)的列上,对于外键通常是这种情况。在许多情况下,如果外键已建立索引,则SELECT(和JOIN)查询会更快。

但是请注意-正如SquareCog所阐明的-索引会根据对数据的任何修改而更新,因此,是的,添加更多索引会导致INSERT /
UPDATE性能下降。如果索引没有更新,则取决于优化器是决定对索引还是对原始表运行查询,您将获得不同的信息-这是非常不希望的情况。

这意味着,您应该仔细评估索引的使用情况。在此基础上肯定有一件事: 必须避免使用未使用的索引。 删除

2021-03-17