2014-09-11 51 views
0

我在修改使用Java進行MySQL檢索批量更新的代碼時遇到了這個疑問。 我的理解是,獲取大小是ResultSet對象中的最大行數,而批量限制是可以添加到批處理以供批處理執行的選擇/插入/更新查詢的數目。任何人都可以糾正我,如果我在這裏錯了。MySQL和Java:獲取大小和批量限制之間的區別

謝謝。

+0

閱讀此鏈接也幫助了我:http://dev.mysql.com/doc/refman/5.0/es/connector-j-reference-implementation-notes.html。請考慮這篇文章[鏈接](http://stackoverflow.com/questions/24098247/jdbc-select-batching-fetch-size-with-mysql) – user1930402 2014-09-11 10:41:16

回答

1

你幾乎是正確的。然而,爲了增加它javadoc of Statement#setFetchSize()

爲JDBC驅動程序提供提示以這應該是 從數據庫

儘管批處理限制提取的行數是什麼這是關係到多少行,你可以插入或更新到max_allowed_packet

一些相關的在一個側面說明:

你也可以檢查JDBC API implementation notes作爲一個良好的閱讀

的ResultSet

默認情況下,結果集是完全檢索和存儲在內存中。 在大多數情況下,這是最有效的操作方式,並且由於 ,MySQL網絡協議的設計更容易實現。如果 您正在使用具有大量行或 大值的ResultSet,並且無法爲您的JVM分配需要的內存的 內存的堆空間,那麼您可以告訴驅動程序將結果一次一行地傳回 。

+0

我想我們可以在Java中使用fetchSize與MySQL表。 [鏈接](http://stackoverflow.com/questions/1318354/what-does-statement-setfetchsizensize-method-really-do-in-sql-server-jdbc-driv)。請你澄清一下。 – user1930402 2014-09-11 10:14:25

+0

@ user1930402: - 的確,我們可以使用它,但這只是提供文檔指定的提示。 – 2014-09-11 10:21:32

+0

謝謝。讓我試試這個。 – user1930402 2014-09-11 10:22:23

相關問題