复合主键限制?(Composite primary key limit?)

2019-10-18 05:30发布

那是正确的,如果我从4列上创建一个复合主键? 喜欢:

PRIMARY KEY(name, slug, type, parent)

所以不应该有多个行具有相同的名称,蛞蝓,类型和家长。 是否有太多的列? 这是否会影响性能?

我使用的SQLite BTW。

Answer 1:

它通常建议有一个ID字段是它自己独特的。 比较整数值的比较比字符串快,所以你的组合键将产生负面影响性能。

将一列用下面的数据类型将是理想的,如果你将加入到其他表:

 INTEGER PRIMARY KEY AUTOINCREMENT


Answer 2:

SQLite的有限制2000列的索引 。

4列索引的性能将不能从该3列索引的太大的不同。

然而,通用的业绩报表不感兴趣。 是你有什么事情该表结构是否是高性能够你,你可以通过测量它只是找出来。


请注意,如果你只有一列做查询,该列必须是在索引中的第一个 ,以允许使用的索引。



文章来源: Composite primary key limit?