为什么数据库的结果集如此之大?我通常会得到大约一百万行的结果集,每个结果集都包含一些数字,一个varchar(75),一个大的int ...等等。可能不会超过每行100个字节。但它占用了6 GB!这是典型的行为吗?我的堆栈是Postgres + JDBC + Spring - 我没有任何其他技术的经验。为什么结果集如此之大?
0
A
回答
1
2
java.sql.ResultSet
本身通常只有几十行数据缓冲在任何时间(可配置)。
现在,如果您将所有这些行作为Java对象加载到内存中,那么您将看到大量的内存使用。例如,String
每个字符有两个字节,两个对象标题,一个偏移量,两个长度和一个高速缓存的散列值。 BigInteger
与此类似。这一切都加起来。使用分析器。
对缓存行集可能会更好。这或者不会立即加载整个结果集。
相关问题
- 1. 为什么mysqldump变得如此之大?
- 2. 为什么散点图如此之大?
- 3. 为什么MathNet.Numerics NuGet包如此之大?
- 4. 当我将mercurial导出到git时,为什么结果如此之大?
- 5. 为什么JRE的下载大小差别如此之大?
- 6. libc符号表中vfprintf的大小如此之大,为什么?
- 7. 为什么ezSQL返回空结果集
- 8. 为什么一个空的MongoDB数据库如此之大?
- 9. 为什么创建flink检查点差异如此之大
- 10. 为什么面向android的Facebook SDK如此之大?
- 11. 为什么.net通用字典如此之大
- 12. hadoop - 权威指南 - 为什么hdfs中的块如此之大
- 13. 为什么我的领域数据库如此之大?
- 14. SQL Server:为什么我的备份如此之大?
- 15. 为什么PHP中的函数和方法如此之大?
- 16. 为什么我的Webpack ReactJS应用程序如此之大?
- 17. 为什么使用boost增加文件大小如此之多?
- 18. 为什么我的页脚如此之大?
- 19. 为什么瀑布如此之慢?
- 20. Clojure:为什么年龄如此之慢?
- 21. 为什么videoview如此之慢?
- 22. 为什么AWS S3如此之慢? (Swift)
- 23. 为什么AWS SQS如此之慢?
- 24. 为什么使用int(* p)[5]`的结果如此混乱?
- 25. 为什么array_walk()函数的结果如此疯狂?
- 26. 为什么这些投掷骰子的结果如此平均?
- 27. java.sql.SQLException:开始之前的结果集...如何删除此错误
- 28. 为什么sed会将此替换的结果评估为8?
- 29. 为什么R()和lapply()之间的性能差异如此之大?
- 30. 为什么在我运行docker commit后docker映像大小如此之大
对于任何人给你一个很好的答案,你将不得不对你的整个问题做更多具体的描述。 “什么”是什么意思? “可能”不超过100B /行?做实际的数学,然后问你的问题。 – 2010-12-14 00:40:01
将整个数据库表复制到Java内存中的原因是什么?对于你想要达到的目标,可能有更好的解决方案。例如,按批处理或按行处理,或以分页视图显示。 – BalusC 2010-12-14 00:41:26
你如何衡量“它占用6 GB”? – 2010-12-14 00:41:55