2012-04-16 138 views
1

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

任何关于如何提高性能的建议都将非常感谢。另外,我在查看http://qt-project.org/doc/qt-4.8/qsqlquery.html,并提到使用setForwardOnly可以提高某些数据库的性能。任何想法,如果它适用于SQLite3?

谢谢!

+0

可您发布表架构和/或SQL查询已加入并且未加入(如果需要,可以简化它们以进行演示) ? – 2012-04-16 16:00:24

+0

谢谢你的回应。我编辑了上面的问题。 – user1065969 2012-04-16 16:12:22

+1

如果您确信已找到解决问题的方法,请将其作为答案提供。 – SingleNegationElimination 2012-04-16 18:57:01

回答

0

根据这个链接,

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

SQLite的工具JOIN通过翻译使用克劳辛到一些额外的WHERE子句中使用的术语。它与NATURAL JOIN和JOIN ON一样。因此,尽管这些构造对读者来说可能有所帮助,但它们对SQLite的查询优化器没有任何影响。

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

(例如:

SELECT * FROM A,B,其中A.id = B.id其中A.id = 1;代替

SELECT * FROM左外连接B关于A.id = B.id其中A.id = 1)

SQLite的转换第一个语句第二编译,你可以直接使用第二条语句上的CPU时间的少量保存之前

相关问题