1

我在 sqlite3 数据库上使用 QSQlQuery。为了获取特定项目,我从 4 个不同的表中填充了结果。我认为加入表格会提高性能/速度并更快地获得结果。所以我最初加入了 2 个表,但加入表后获取数据需要更长的时间(?)

任何有关如何提高性能的建议将不胜感激。此外,我正在查看http://qt-project.org/doc/qt-4.8/qsqlquery.html并提到使用 setForwardOnly 会提高某些数据库的性能。知道它是否适用于 SQLite3 吗?

谢谢!

4

1 回答 1

0

根据这个链接,

http://sqlite.org/cvstrac/wiki?p=PerformanceTuning

SQLite 通过将 USING 子句翻译成一些额外的 WHERE 子句来实现 JOIN USING。NATURAL JOIN 和 JOIN ON 也是如此。因此,尽管这些结构可能对人类读者有所帮助,但它们对 SQLite 的查询优化器并没有真正的影响。

- 我错了加入两个表并期望获取速度更快。它不适用于 SQLite 数据库。相反,使用“where”子句并直接连接两个结果肯定会对性能产生一些积极影响。

(例子 :

select * from A,B where A.id = B.id where A.id = 1; 代替

select * from A left outer join B on A.id = B.id where A.id = 1)

SQLite 在编译之前将第一条语句转换为第二条语句,您可以通过直接使用第二条语句来节省少量的 CPU 时间

于 2012-04-18T20:36:47.330 回答