我正在编写一个基于sqlite数据库的C++程序。我有一个带有各种字段的表table1。有许多函数需要读取table1的每一列
select * from table1 where (condition);查询结果存储在适当的内存结构中。
其他函数只需要table1的第一个字段
select field1 from table1 where (condition);我可以通过执行第一个查询来获得field1的值,并且只读取存储它的内存结构中的第一个字段,或者实现一个调用第二个查询的函数。我是否应该这样做,以提高我的程序的性能?
发布于 2014-06-10 17:07:13
您应该使用第二个查询,而不是主要出于性能考虑,而是因为它更清楚地指明了代码的用途。当您查询所有字段,然后抛出除一个以外的所有字段时,就会有人开始调试代码,并想知道为什么所有其他字段都未使用。
正交地,我想指出,在编程上使用select *只是在表模式在行的某一段时间发生变化时询问问题。我强烈建议明确列出所需的列,即使该列表是“所有当前可用的列”。
https://stackoverflow.com/questions/24146306
复制相似问题