Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提高使用QT的sqlite3数据库的性能?_Sqlite_Qsqltablemodel - Fatal编程技术网

如何提高使用QT的sqlite3数据库的性能?

如何提高使用QT的sqlite3数据库的性能?,sqlite,qsqltablemodel,Sqlite,Qsqltablemodel,我在sqlite3数据库上使用QSQlQuery。为了获取一个特定的项,我填充了4个不同表的结果。我认为加入表格可以提高性能/速度,更快地获得结果。因此,我最初连接了两个表,但在连接表之后获取数据需要更长的时间(?) 任何关于如何提高绩效的建议都将不胜感激。此外,我还研究了,其中提到使用setForwardOnly可以提高某些数据库的性能。知道它是否适用于SQLite3吗 谢谢 根据这个链接 SQLite通过将USING子句转换为一些额外的WHERE子句术语来实现JOIN USING。对于“自

我在sqlite3数据库上使用QSQlQuery。为了获取一个特定的项,我填充了4个不同表的结果。我认为加入表格可以提高性能/速度,更快地获得结果。因此,我最初连接了两个表,但在连接表之后获取数据需要更长的时间(?)

任何关于如何提高绩效的建议都将不胜感激。此外,我还研究了,其中提到使用setForwardOnly可以提高某些数据库的性能。知道它是否适用于SQLite3吗


谢谢

根据这个链接

SQLite通过将USING子句转换为一些额外的WHERE子句术语来实现JOIN USING。对于“自然连接”和“连接在上”也是如此。因此,尽管这些构造可能对人类读者有所帮助,但它们对SQLite的查询优化器并没有任何影响

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

(例如:

从A,B中选择*其中A.id=B.id其中A.id=1;而不是

从A.id=B.id上的左侧外部联接B中选择*,其中A.id=1)


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

您可以发布表架构和/或SQL查询的联接和未联接(如果需要,您可以简化它们以供演示)?感谢您的回复。我已编辑了上述问题。如果您认为您已经找到了问题的解决方案,请将其作为答案提供。我已将解决方案添加到问题本身。我没有足够的权限在发布问题的同一天提供答案。