Sqlite - 不同的查询,不同的速度?

时间:2014-06-10 16:31:39

标签: c++ sql sqlite

我正在编写一个基于sqlite数据库的C ++程序。 我有一个包含各种字段的表table1。有许多函数需要读取table1的每一列:

select * from table1 where (condition);

查询结果存储在合适的内存结构中。

其他功能只需要table1的第一个字段:

select field1 from table1 where (condition);

我可以通过执行第一个查询并只读取包含它的内存结构中的第一个字段来获取field1的值,或者我可以实现一个调用第二个查询的函数。 我应该这样做是为了提高我的程序的性能吗?

1 个答案:

答案 0 :(得分:1)

您应该使用第二个查询,主要是因为性能问题,但是因为它更清楚地表明代码的目的。一旦你查询所有字段,然后抛出除了一个之外的所有字段,有人会开始调试代码,并想知道为什么所有其他字段都未使用。

正交地我想要注意的是,当表格架构在某些时候发生变化时,以编程方式使用select *只是询问是否存在问题。我强烈建议明确拼写出您需要的列,即使该列表是“所有当前可用的列”。