如果我从4列创建复合主键,可以吗?像:
PRIMARY KEY(name, slug, type, parent)
因此,不应该有多个具有相同名称,slug,type和parent的行。列太多了吗?它会影响性能吗?
我正在使用sqlite btw。
答案 0 :(得分:2)
SQLite的限制为2000 columns in an index。
4列索引的性能与3列索引的性能差别不大。
但是,通用性能声明并不有趣。 对您来说重要的是这个表格结构是否足够适合您,您只能通过测量才能找到它。
请注意,如果您只对一列进行查找,则使用该列must be the first one in an index以允许使用索引。
答案 1 :(得分:1)
通常建议拥有一个独特的ID字段。比较INTEGER值比比较字符串更快,因此复合键会对性能产生负面影响。
如果您要加入其他表,添加具有以下数据类型的列将是理想的:
INTEGER PRIMARY KEY AUTOINCREMENT