Mysql大表查詢注意事項
在執行查詢時,Mysql預設把結果全部load到記憶體後再返回(這種模式可理解為Oracle的ALL_ROWS最佳化模式),如果表資料量太大的話,會導致記憶體溢位。
1.在mysql console連線資料庫時:
加入-q選項,mysql -h hostname -u root -p -q
2.在jdbc連線資料庫時:
在連線串中加入useCursorFetch=true
1.在mysql console連線資料庫時:
加入-q選項,mysql -h hostname -u root -p -q
2.在jdbc連線資料庫時:
在連線串中加入useCursorFetch=true
在建立的語句中,加入setFetchSize,如
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);
注意:The Integer.MIN_VALUE is used by the MySQL driver as a signal to switch to streaming result set mode. It is not used as a value.
See the documentation, under "Resultset". In summary:
By default, ResultSets are completely retrieved and stored in memory. You can tell the driver to stream the results back one row at a time by setting stmt.setFetchSize(Integer.MIN_VALUE); (in combination with a forward-only, read-only result set).
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);
注意:The Integer.MIN_VALUE is used by the MySQL driver as a signal to switch to streaming result set mode. It is not used as a value.
See the documentation, under "Resultset". In summary:
By default, ResultSets are completely retrieved and stored in memory. You can tell the driver to stream the results back one row at a time by setting stmt.setFetchSize(Integer.MIN_VALUE); (in combination with a forward-only, read-only result set).
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-2086751/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 查詢大表注意事項MySql
- Mysql設計與查詢的關鍵注意事項MySql
- Oracle vs PostgreSQL,研發注意事項(1)-查詢鎖表OracleSQL
- hive查詢注意事項和調優Hive
- mybatis中使用in查詢時的注意事項MyBatis
- [爬坑日誌1]寫查詢的mysql一些小注意事項MySql
- MySQL半同步使用注意事項MySql
- oracle移植到mysql注意事項OracleMySql
- SQVI和SAP查詢QUERY的區別和使用注意事項
- Oracle臨時表使用注意事項Oracle
- MySQL 資料庫-索引注意事項MySql資料庫索引
- mysql索引使用技巧及注意事項MySql索引
- MySQL常用語句及注意事項MySql
- MySQL 安裝後的注意事項MySql
- MySQL型別轉換注意事項MySql型別
- MYSQL 安裝維護注意事項MySql
- MySQL 的 23 條安全注意事項MySql
- mysql 配置注意事項、 mysql 資料型別MySQL 資料型別
- 大資料學習注意事項大資料
- MySQL單表查詢MySql
- mysql鎖表查詢MySql
- MySQL 單表查詢MySql
- oracle 例項表查詢Oracle
- SQL Server 表分割槽注意事項HXSQLServer
- Oracle 重建表(rename)注意事項總結Oracle
- Oracle 重建表(rename)注意事項小結Oracle
- Mysql索引以及使用索引注意事項MySql索引
- 安裝mysql-python注意事項MySqlPython
- Amoeba for MySQL學習研究之注意事項MySql
- MySQL 慢查詢那點事MySql
- mySQL多表查詢與事務MySql
- mysql 查詢記錄數大於一千萬的表MySql
- IOS程式碼自查和走查注意事項iOS
- php大檔案上傳注意事項PHP
- MySql 鎖表 查詢 命令MySql
- RandomAccessFile注意事項randomMac
- nginx 注意事項Nginx
- @Lombok注意事項Lombok