我正在编写一个基于 sqlite 数据库的 C++ 程序。
我有一个包含各种字段的表 table1
。有很多函数需要读取table1
的每一列:
select * from table1 where (condition);
查询的结果存储在合适的内存结构中。
其他函数只需要table1
的第一个字段:
select field1 from table1 where (condition);
我可以通过执行第一个查询并只读取保存它的内存结构中的第一个字段来获取 field1
的值,或者我可以实现调用第二个查询的函数。
我应该这样做以提高我的程序的性能吗?
最佳答案
您应该使用第二个查询,这主要不是因为性能问题,而是因为它更清楚地表明了代码的目的。一旦您查询了所有字段,然后将所有字段都扔掉,只剩下一个字段,有人就会开始调试代码并想知道为什么所有其他字段都未使用。
Orthogonally 我想指出,当表模式在某个时候发生变化时,以编程方式使用 select *
只是询问问题。我强烈建议明确拼出您需要的列,即使该列表是“所有当前可用的列”。
关于c++ - Sqlite - 不同的查询,不同的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146306/