1

如果我从 4 列创建复合主键可以吗?像:

PRIMARY KEY(name, slug, type, parent)

所以不应该有超过一行具有相同的名称、slug、类型和父级。列太多了吗?会影响性能吗?

我正在使用 sqlite 顺便说一句。

4

2 回答 2

2

SQLite在一个索引中有 2000 列的限制。

4 列索引的性能与 3 列索引的性能差别不大。

但是,通用性能声明并不有趣。对你来说重要的是这个表结构对你来说是否足够高效,你只能通过测量它来发现。


请注意,如果您只查找一列,则该列必须是索引中的第一个列,才能使用该索引。

于 2013-06-06T16:57:54.843 回答
1

通常建议使用自己唯一的 ID 字段。比较 INTEGER 值比比较字符串更快,因此您的复合键会对性能产生负面影响。

如果您要加入其他表,添加具有以下数据类型的列将是理想的:

 INTEGER PRIMARY KEY AUTOINCREMENT
于 2013-06-06T16:01:01.947 回答