我们有一个QSqlQueryModel,可以加载大量数据。当加载数据的大小达到约1.5 GB时,程序崩溃。我们如何处理这种情况?我们可以捕获异常或限制QSqlQueryModel加载的数据量吗?
答案 0 :(得分:2)
假设您的代码在PC硬件上运行,您可以尝试使用64位可执行文件而不是32位。
另一方面,你实际上不太可能从数据库中获取1.5GB的数据 - 我的意思是,当然没有人会搜索如此庞大的数据,如果你使用数据库来查找内容,你就不应该'需要“过滤后”或其他一些,然后你“做错了”。
通过使用SELECT x, y FROM tablename LIMIT n,m
限制“搜索结果”(其中n
是“第一个元素”,m
是您要获取的元素数。如果您将元素数量限制为合理的数量,即使您的实际数据非常大。
我非常怀疑“捕获异常”是一个特别有意义的想法,因为问题实际上是“从数据库中获取大量数据”,我认为每次发生这种情况都是错误的。