mysql fetch size 相關問題

2021-08-27 12:11:50 字數 700 閱讀 3112

預設情況下,mysql的jdbc驅動會一下子把所有row都讀取下來,這在一般情況下是最優 的,因為可以減少client-server的通訊開銷。但是這樣也有乙個問題,當資料庫查詢結 果很大時,特別當不能全部放進記憶體時,就會產生效能問題。 本來,jdbc api裡在connection、statement和resultset上都有設定fetchsize的方法, 但是mysql的jdbc驅動都不支援,無論你怎麼設fetchsize,resultset都會一次性從serv er讀取資料。在mysql的官方論壇上也有多個這樣的問題,總結一下解決辦法如下:

1.mysql版本在5.0以上,mysql的jdbc驅動更新到最新版本(至少5.0以上)

2.statement一定是type_forward_only的,併發級別是concur_read_only(即建立statem ent的預設引數)

3.以下兩句語句選一即可:

1).statement.setfetchsize(integer.min_value);

2).((com.mysql.jdbc.statement)stat).enablestreamingresults(); 這樣會一行一行地從server讀取資料,因此通訊開銷很大,但記憶體問題可以解決。官方 的說法是不支援fetchsize不是mysql的jdbc驅動的問題,而是mysql本身就不支援。而商 用資料庫oracle或db2都是支援fetchsize的,從這裡也可以看出兩者的考量不同。

GetCurrentDirectory相關問題

dword getcurrentdirectory dword nbufferlength,size of directory buffer lptstr lpbuffer directory buffer 函式功能 獲取當前程序的當前目錄。注意當前目錄這東西有點怪異,本來確實是可執行檔案的所在目錄...

Map JSONObject String相互轉換

map轉jsonobject com.alibaba fastjson 1.2.59 jsonobject info jsonobject.parseobject json.tojsonstring map jsonobject轉map jsonobject json new jsonobject ...

AdaBoost scikit learn相關引數

base estimator 弱分類器物件,預設為cart分類樹 decisiontreeclassifier algorithm samme和samme.r samme表示構建過程中 使用樣本集分類效果作為弱分類器的權重 samme.r使用對樣本集分類的 概率大小作為弱分類器的權重。由於samme...