InnoDB如何对多列主键进行排序

时间:2011-06-12 07:14:28

标签: mysql database-design innodb

我知道InnoDB中的主键是群集的。因此,使用自动增量整数作为主键具有已经排序的好处,并提高了插入性能。

但问题是我有一个像这样的表有2列id和哈希(以及其他一些但不重要);

id int auto increment
hash Guid

我需要在哈希列上对此表进行分区,这意味着我必须将它放在主键中。

所以我想创建一个主键为(id,hash).id列将用于与其他表的连接。

问题是如果我将PK作为(id,hash),InnoDB将如何排序?

首先使用id列然后使用hash,还是使用其他方式来确定键的顺序?前者会更好,因为它受益于已经排序的auto inc列,但我找不到有关如何在复合列上进行排序的任何信息。

非常感谢对此的任何见解:)

1 个答案:

答案 0 :(得分:1)

多个列的主键由MySQL管理,作为所选列值的串联。因此,第一列可以更快地排序,因为它将在聚合的开头。