你什么时候使用每种 MySQL 索引类型?
- PRIMARY - 主键列?
- 唯一 - 外键?
- 索引 - ??
对于非常大的表,索引列会提高性能吗?
最佳答案
初级
主键,顾名思义,就是一个表的主键,应该是一个列,通常用来选择这个表的行。主键始终是唯一键(唯一标识符)。主键不限于一列,例如在引用表(多对多)中,主键包含两列或更多列通常是有意义的。
独一无二
唯一索引可确保您的 DBMS 不接受此列的重复条目。你问'外键?不!这不会有用,因为根据定义,外键很容易重复(一对多、多对多)。
索引
附加索引可以放置在经常用于 SELECTS(和 JOINS)的列上,这通常用于外键。在许多情况下,如果外键被索引,则 SELECT(和 JOIN)查询会更快。
但是请注意——正如 SquareCog 所阐明的那样——索引会根据对数据的任何修改进行更新,所以是的,添加更多索引会导致 INSERT/UPDATE 性能下降。如果索引没有得到更新,您将获得不同的信息,具体取决于优化器决定是在索引上还是在原始表上运行查询——这是一种非常不受欢迎的情况。
这意味着,您应该仔细评估索引的使用情况。基于此可以确定一件事:必须避免使用未使用的索引,resp。已删除!
关于sql - 如何使用 MySQL 索引列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1517303/