gpt4 book ai didi

c++ - QSqlQuery 使用数百 MB 内存

转载 作者:行者123 更新时间:2023-11-28 07:58:45 24 4
gpt4 key购买 nike

我正在使用 QSqlQuery对象对一个 1000 万行的 SQL 表进行线性遍历,该表具有一个非常复杂的 6 列主键,并按排序顺序排列。由于 key (我无法更改),打破了我的查询 SELECT * FROM table1<>LIMIT导致我正在使用的算法出现大量问题。

无论出于何种原因,我出现的问题如下QSqlQuery似乎将整个结果集缓存在内存中,直到它遇到错误的分配并终止应用程序。所以我可能会阅读几百行,seek()超过几十万,此时QSqlQuery正在使用 300mb 的内存,我的应用程序死了。我阅读了文档,似乎唯一可以做的就是使用 setForwardOnly() , 但是我经常需要 previous() (这就是为什么用 LIMIT 分解查询是一个 PITA)

有没有办法限制 QSqlQuery 的缓存? ?

最佳答案

你为什么不自己存储previous?有一个 QContiguousCache 似乎很适合这个。

关于c++ - QSqlQuery 使用数百 MB 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com