MySql 唯一索引与索引速度

标签 mysql performance indexing

在 Mysql 中,除了数据完整性之外 - 使用唯一索引比常规索引有任何性能优势吗? (假设数据是唯一的)

即- 创作时间会更短吗?更新?还是在常规索引上查询唯一索引?

最佳答案

对于某些查询,查询优化器可以比使用普通索引更有效地使用唯一索引。仅举一个例子,在包含唯一索引的所有列的 SELECT DISTINCT 查询中,查询优化器可以发出一个跳过对结果进行排序和消除重复项的计划——即使该计划没有明确使用索引!

不过,一般来说,唯一索引与非唯一索引对同一列的性能影响取决于您的查询。

我的建议是尽可能准确地为您的数据建模。如果您的数据的特点是某些列组合不会在不同的行中重复,并且您打算对这些列进行索引,那么该索引应该是唯一索引。

确实,在这种情况下,您应该考虑使用唯一索引来强制这些列的唯一性,即使您不打算为它们编制索引。添加索引确实会增加一些插入、删除和某些更新的开销,但除非您对这些操作的性能不满意,否则最好忽略它。

关于MySql 唯一索引与索引速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28174376/

相关文章:

python - 或者重新排列 Dataframe 的行

mysql - 您能解释一下使用 Composite MySQL INDEX 进行多个 INNER JOIN 的方面吗?

mysql - 如何从表中删除外键?

mysql - 需要从当前库存和销售中找到滞销商品

java - 将子类转换为真正的高性能父类(super class)

python - 使用map求嵌套列表的平均值

android - 即使在 "killed"之后,应用程序仍会继续运行

php - 需要转换日期并在mysql中进行比较

仅具有唯一 ID 的 Mysql SUM CASE

php - mysql - if value = 0 缩短 where 语句