sqlite:select * from上的性能问题

时间:2014-01-23 16:17:02

标签: sql sqlite

我有大量[crc INT, name VARCHAR]

类型的记录

crc条记录中的一些(少数)将是重复的。我感兴趣的是快速选择具有特定crc值的项目。

是否值得(就性能而言)使crc字段INTEGER PRIMARY KEY(这是唯一的)并使name成为复合值(这是可行但丑陋 - 我认为)或只需在crc字段上创建一个索引?

制作crcPRIMARY会增加显着的效果吗?

有人可以帮忙吗?

2 个答案:

答案 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索引比单独索引更有效,但差异不太可能显着。