在做一個項目的時候,偶然發現mybatis特別慢,數據就600多,很不科學
百度一下,有很多說什么sql語句問題,類型不匹配==,我是新手不太懂,偶然的機會在mybatis配置添加了一個fetch參數
好了。。。。
解決了問題,順便,網上查一下具體原因:
jdbc在查詢的時候,每次會從游標中取10條數據,連續重復,每一次重復都會進行一次數據庫交互,交互都是非常耗時間的,而fetchSize就是設置每次查詢出來的數據條數,保存進緩存中,以后每次游標取10條數據,就會從內存中讀取10條數據,這樣不需要進行數據庫交互,耗時也就變少了。以下來自百度....
ORACLE JDBC驅動默認的FETCHSIZE為10。一般為了方便,我們會在數據源層面上來設置fetchsize。
- 在沒有記錄返回的情況下,OCI方式中fetchsize設置越大,對性能的影響越大。
- 在沒有記錄返回的情況下,THIN和mysql的方式中,fetchsize的大小,對於性能影響不大。
- 當返回結果集較大時,設置較大的fetchsize,對性能會有很大的提升。
- Fetchsize設置大於返回的記錄數時,對於性能的提升沒有任何的意義,反而會增加內存的開銷。