我正在使用jdbc和mysql。我需要迭代表中的每一行(60,000行,表= InnoDB),并对每个行执行一些处理。
mysql会接受没有这样限制的查询吗?在最简单的实现中,我只需选择整个表,并在光标给出更多结果的同时继续迭代结果:
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM foo");
ResultSet rs = stmt.getResultSet();
while (rs.next()) {
.. do stuff on each row ..
}
我可以实现一个分页查询,当然要批量执行此操作,但是按照第一种方法的说明进行操作会更简单。我想知道mysql是否在内部执行此操作,或者它是否尝试首先将整个查询结果集加载到内存中?
由于
答案 0 :(得分:0)
MySQL会运行它并尽力确保,或者至少尝试使用我们的内存,直到它耗尽。在其他一些方面,这也是有趣的亮点: