2012-04-16 135 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時間的少量保存之前

相關問題