【发布时间】:2014-02-26 16:15:36
【问题描述】:
我想这是一个性能问题。
创建复合键时顺序是否重要?
在我的例子中,复合键是使用一个名为 hash 的 128 位字符和一个名为 user_id 的外 (int) 键创建的。
例如 (hash, user_id) 会比 (user_id, hash) 快吗?
如果在连接中使用复合键会更慢吗?
CREATE INDEX composite_hash_user_id_index ON `user_false_positives` (`hash`, `user_id`);
【问题讨论】:
-
是的。确实如此。但是 x 比 y 快吗?这是一个更难的问题。
-
嗨,山姆,感谢您的反馈。当您说“MySQL 使用最左侧的索引”时,您是在谈论复合键的左侧部分。索引的那一部分是先使用的吗?
-
如果您的问题是关于创建索引,那么答案基本上是否定的。如果问题是关于使用索引,那么顺序很重要。
-
我会更新答案
-
嗨,戈登。我说的是索引创建后的使用。
标签: mysql sql performance composite-key