MySQL數據庫連接串的兩個參數:rewriteBatchedStatements=true&useCursorFetch=true

最近在將數據庫,從Oracle遷移到MySQL,遇到了不少數據庫不同造成的問題,尤其是在批處理的時候,MySQL的表現和Oracle完全不一樣,查了不少資料,問題解決了,除了程序部分,MySQL的數據庫連接串上,要增加 useCursorFetch rewriteBatchedStatements 參數

useCursorFetch : 這個在前面的記錄中已經寫過,在查詢大批量的數據時,MySQL是以FetchAll的方式,將所有的數據都堆到客戶端的,要想使用stream方式,要通過 useCursorFetch 參數打開開關;這個參數mysql缺省是false的;(MySQL最低版本 5.0.2)(https://www.jianshu.com/p/64bd83f3bcc5

rewriteBatchedStatements:MyBatis 的批量方式,

  • 有 Mybatis Batch,
  • 原生JDBC Batch方式,
  • 以及Mybatis的foreach拼接SQL的方式

除了最後一種foreach拼接SQL的方式不受rewriteBatchedStatements影響,另兩種方式,需要打開 rewriteBatchedStatements 參數,才能實現高性能的批量操作(MySQL最低驅動版本:5.1.13)

(資料: https://www.jianshu.com/p/0f4b7bc4d22c )

 

最近查資料解決問題,發現 簡書 上大部分都有解決方法的文章,而且不僅文章質量比其他網站高,而且排版看着舒服,更容易看明白;大家有空可以看看;如果能翻牆找資料,那當然更好了;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章