我会在SELECT只保留一次的INDEX上保存吗?

时间:2009-08-21 06:15:47

标签: sql database select indexing

在SQLite :: SQLite of SQLite3

如果我要查询一次SELECT。

Should I CREATE a INDEX first and then query the SELECT
 or
just query the SELECT without an INDEX,
 which is faster ?

如果需要指定,col。要索引是一个未定义或1的INTEGER,只有这两种可能性。

2 个答案:

答案 0 :(得分:3)

构建索引所需的时间比仅进行表扫描要长。因此,如果您的单个查询 - 您只运行一次 - 只是一个表扫描,则添加索引会更慢。

但是,如果您的单个查询不仅仅是表扫描,则添加索引可能会更快。例如,如果没有索引,数据库可以为每个连接的行执行一次多次表连接的连接。然后索引可能会更快。

我会说要对它进行基准测试,但对于一次性查询而言,这听起来很愚蠢,你只能运行一次。

答案 1 :(得分:0)

如果考虑在只有两个可能值的列上设置和索引,则不值得努力,因为索引几乎没有什么改进。索引对于具有高度唯一性且经常查询特定值或范围的列非常有用。在其他硬索引上,插入和更新速度较慢,所以在这种情况下你应该跳过它。