我知道InnoDB中的主键是群集的。因此,使用自动增量整数作为主键具有已经排序的好处,并提高了插入性能。
但问题是我有一个像这样的表有2列id和哈希(以及其他一些但不重要);
id int auto increment
hash Guid
我需要在哈希列上对此表进行分区,这意味着我必须将它放在主键中。
所以我想创建一个主键为(id,hash).id列将用于与其他表的连接。
问题是如果我将PK作为(id,hash),InnoDB将如何排序?
首先使用id列然后使用hash,还是使用其他方式来确定键的顺序?前者会更好,因为它受益于已经排序的auto inc列,但我找不到有关如何在复合列上进行排序的任何信息。
非常感谢对此的任何见解:)
答案 0 :(得分:1)
多个列的主键由MySQL管理,作为所选列值的串联。因此,第一列可以更快地排序,因为它将在聚合的开头。