Java & MySQL & Linux 性能調整文章收集

摘要:Java & MySQL & Linux 性能調整文章收集

這篇是用來放Java、MySQL、Linux相關的性能問題文章的蒐集專區,

因為目前要玩的架構太大,幾百萬筆的資料量,除了注重的是執行時間、記憶體、硬體相關的IO存取、網路流量的傳輸大小、一些作業系統的特殊限制,

有太多細節要懂,只好擺一篇文章,來放這些資料蒐集。

 

大資料量executeQuery問題,實際遇到狀況則是,本機讀取10萬筆時,花10~20秒才執行結束返回,再需要每秒一萬筆以上的速度,光這裡就大量遺失一些效能。

而使用executeQuery不間斷的讀取,會造成記憶體被佔用的情況,而導致存取速度或可能的問題發生也是一種麻煩。

所以需要一萬或一千筆慢慢存取,但如果是mysql的limit 100000,10000這樣的話,也會同樣的有越來越慢的問題,limit 值越後面,則越容易存取速度越慢,這又是另一個議題

 

1.大資料execute問題 mysql-jdbc-memory-usage-on-large-resultset

http://benjchristensen.com/2008/05/27/mysql-jdbc-memory-usage-on-large-resultset/

 

difference between setMaxRows(int) and SetFetchSize(int)

http://www.jguru.com/faq/view.jsp?EID=462124

解決方案關鍵字:stmt.setFetchSize(Integer.MIN_VALUE);

2.mysql limit 

[轉]MySQL的LIMIT簡介和性能優化

http://www.javawind.net/5b016f38218d0dea0121c2ad265008e3.jhtml

http://www.blogjava.net/bang/archive/2012/03/19/372193.html

一次性查詢幾百萬高效數據方法

http://tech.it168.com/a2012/0228/1317/000001317401_all.shtml

 

3.Linux記憶體的問題

查詢linux效能相關指令

top  , htop , free 

釋放記憶體

http://blog.yesican.tw/?p=912

 

4.Linux資料夾數量限制

實際撰寫後,發現超過3萬以上時,出現的問題,每個資料夾下的資料夾頂多到31998

http://lwjlaser.iteye.com/blog/1236678

 

MySQL  & Java  ResultSet

JDBC API Implementation Notes

http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-implementation-notes.html

MySQL Streaming Result Set

http://javaquirks.blogspot.tw/2007/12/mysql-streaming-result-set.html

 

http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-implementation-notes.html

 

Java memory leak 

http://cloudtu.blogspot.tw/2011/12/java-memory-leak.html

http://stackoverflow.com/questions/1638011/java-memory-leak

http://www.openlogic.com/wazi/bid/188158/

http://blogs.sourceallies.com/2011/07/debugging-memory-leaks-with-visualvm/

http://blog.yslifes.com/archives/362

http://blog.yslifes.com/archives/360