如果我从 4 列创建复合主键可以吗?像:
PRIMARY KEY(name, slug, type, parent)
所以不应该有超过一行具有相同的名称、slug、类型和父级。列太多了吗?会影响性能吗?
我正在使用 sqlite 顺便说一句。
如果我从 4 列创建复合主键可以吗?像:
PRIMARY KEY(name, slug, type, parent)
所以不应该有超过一行具有相同的名称、slug、类型和父级。列太多了吗?会影响性能吗?
我正在使用 sqlite 顺便说一句。
SQLite在一个索引中有 2000 列的限制。
4 列索引的性能与 3 列索引的性能差别不大。
但是,通用性能声明并不有趣。对你来说重要的是这个表结构对你来说是否足够高效,你只能通过测量它来发现。
请注意,如果您只查找一列,则该列必须是索引中的第一个列,才能使用该索引。
通常建议使用自己唯一的 ID 字段。比较 INTEGER 值比比较字符串更快,因此您的复合键会对性能产生负面影响。
如果您要加入其他表,添加具有以下数据类型的列将是理想的:
INTEGER PRIMARY KEY AUTOINCREMENT