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

标签 c++ sql sqlite

我正在编写一个基于 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/

相关文章:

c++ - 一个指针的两行字符串

sqlite - 插入时如何覆盖自动递增主键

c++ - switch 语句中的静态变量

c++ - C++ 中的大文件支持

模板参数中参数 1 的 C++ 类型/值不匹配

mysql - 用户有很多台计算机,计算机在不同的表中有很多属性,最好的加入方式是什么?

sql - 找出字符串中出现次数最多的字符

c++ - 为什么我们在解析器文件中定义 union 时使用复杂类的指针?

mysql - SQL多表多对多关系

c++ - 在 C/C++ 中导出 .sqlite 文件(在 Windows 上)