如果我在列上有唯一键,是否会使得在同一列上没有其他索引?
如果它是多列唯一键怎么办?这是否不必在唯一索引列列表中的FIRST列上添加其他索引?
关于SO也有类似的问题,但我希望在这个狭窄的背景下得到明确的答案。
答案 0 :(得分:2)
如果我在列上有唯一键,是否会使得在同一列上没有其他索引?
是。 UNIQUE KEY
隐式创建索引。
如果它是多列唯一键怎么办?这是否不必在唯一索引列列表中的FIRST列上添加其他索引?
是。任何需要搜索第一列的查询都可以使用多列索引。
通过类比,如果我要求您在电话簿中搜索名为“Smith,Sarah”的人,就像搜索带有两列的复合索引一样。如果我要求您使用同一本电话簿搜索姓氏为“Smith”的人,即使您不需要搜索第二列,第一列的排序顺序仍然有用。
答案 1 :(得分:1)
这样就不必在其上添加额外的索引 列?
是
如果它是多列唯一键怎么办?
是的,可以使用更多的索引和唯一索引。
==详细说明==
每次在桌面上执行DML时都应该记住。它必须重组你的索引。因此,这完全取决于您取得的成就以及您准备妥协的内容。
假设您正在使用某个数据库,其查询性能(SELECT
)很慢。现在,您考虑创建索引,最终提高了一些性能。所以,你想,有必要有这个索引。
稍后,在某一天之后,您在同一个表上执行任何DML操作时开始观察缓慢。现在,取决于你准备好了什么。这可以定义为(un)你需要的。
<强> 8.3 Optimization and Indexes 强>
尽管为每种可能的方法创建索引都很诱人 在查询中使用的列, 不必要的索引会浪费空间和浪费时间 用于MySQL确定要使用的索引。索引也增加了 插入,更新和删除的成本,因为每个索引必须是 已更新。 您必须找到合适的余额才能实现快速查询 最佳索引集。