我是新来的SQL(使用PostgreSQL),我写了一个Java程序,从一个大表中选择并执行一些功能。问题是,当我运行程序时,我得到一个java OutOfMemoryError,因为表太大了。我知道我可以使用LIMIT操作符从表格的开始处进行选择,但是有没有办法通过LIMIT命令从一个特定的索引处开始选择?谢谢!从一个以某个索引开始的SQL表中选择?
0
A
回答
2
在有偏移选项的Postgres为:
select from table
offset 50
limit 50
0
对于MySQL可以使用follwoing方法:
- SELECT * FROM表LIMIT {}偏移,ROW_COUNT
- SELECT * FROM表WHERE ID> {max_id_from_the previous_selection} LIMIT ROW_COUNT。第一个max_id_from_the_selection = 0.
0
这实际上是jdbc驱动程序为您处理透明的东西。您可以实际流式传输结果集,而不是立即将其全部加载到内存中。要做到这一点在MySQL中,你需要在这里按照指示:http://javaquirks.blogspot.com/2007/12/mysql-streaming-result-set.html
基本上当你创建你调用各种Connection.prepareStatement你需要传递ResultSet.TYPE_FORWARD_ONLY
和ResultSet.CONCUR_READ_ONLY
作为第二个和第三个参数,那么你的PreparedStatement对象上调用setFetchSize(Integer.MIN_VALUE)
。
也有类似的说明与其他数据库做到这一点,我可以迭代,如果需要的话。
编辑:现在我们知道你需要PostgreSQL的指令。按照这里的说明:How to read all rows from huge table?
相关问题
- 1. 从某个索引开始的最小数字的索引
- 2. 从sql中选择某个列以某个字符串开头的条件
- 3. 选择下一个元素,从某个元素开始
- 4. Javascript从多个选择列表中选择索引
- 5. 从两个表中选择并始终从一个
- 6. 如何从列表(Python)的某个索引处开始执行“for each”?
- 7. 索引中选择一个外键
- 8. 从一个表中不选择另一个表中的SQL选项
- 9. 如何从linq列表中选择某个字符串(按索引)?
- 10. 从SQL表中选择每个唯一ID中的3个
- 11. SQL选择从同一个表
- 12. 从两个表中选择一个表
- 13. 多个列表框的选择索引
- 14. SQL根据另一个选择语句从表中选择列
- 15. 从某个数字开始一个列表
- 16. 从文字开始以某个字符开始划分文字
- 17. 如何选择以第一个索引开头并以第一个逗号开头的子串?
- 18. 根据从另一个表中选择的结果从一个表中选择
- 19. 打印一个数组列表,并选择一个索引?
- 20. 定义从第一个日期选择器开始的第二个日期选择器的开始日期
- 21. SQL选择表中的某些行,以便它们总计为某个值
- 22. Oracle SQL从一个表中选择行不在另一个
- 23. sql选择以特定记录开始
- 24. 选择框选择angularjs中的下一个索引值
- 25. 选择一个数字列表以及以sql开头的所有nuber列表
- 26. C#在foreach中以某个值开始
- 27. SQL服务器从两个可能的表中选择一个
- 28. SQL:从两个表中选择第一个字母的行
- 29. SQL从一个组的两个表中选择最大ID
- 30. SQL - 从一个选择到另一个选择的结果
DBMS你是否使用的是RDBMS使用的是什么 –
请注明? – Hiten004
请尝试以下操作之一:https://www.google.com/search?q=mysql+paging –