我有大量[crc INT, name VARCHAR]
crc
条记录中的一些(少数)将是重复的。我感兴趣的是快速选择具有特定crc
值的项目。
是否值得(就性能而言)使crc
字段INTEGER PRIMARY KEY
(这是唯一的)并使name
成为复合值(这是可行但丑陋 - 我认为)或只需在crc
字段上创建一个索引?
制作crc
列PRIMARY
会增加显着的效果吗?
有人可以帮忙吗?
答案 0 :(得分:0)
1)选择具有特定crc值的项目:
SELECT * FROM tablename WHERE crc=777;
2)不要将crc字段设为INTEGER PRIMARY KEY
,因为它可能会重复。您最好创建唯一的'id'字段,并将其标记为INTEGER PRIMARY KEY AUTOINCREMENT
答案 1 :(得分:0)
如果要访问个人名称,存储名称列表会产生问题。 (但如果你总是一次查找或检索所有这些名字,那就不会有太大的问题了。)
如果存在重复项,则无法将该列设为主键。 只创建(非唯一)索引是最简单的解决方案。
使用INTEGER PRIMARY KEY索引比单独索引更有效,但差异不太可能显着。