Myisam & InnoDB 優化引數
Myisam 優化:
key_buffer_size 分配給MyISAM索引快取的記憶體總數
● query_cache_size 控制分配給查詢快取的記憶體總量
● long_query_time 設定慢查詢時間
● external-locking 禁止使用外部鎖,可預防死鎖
● back_log 臨時停止響應新請求前在短時間內可以堆起多少請求。如果你需要在短時間內允許大量連線,可以增加該數值
● table_cache 快取資料表的數量,避免重複開啟表的開銷
● thread_cache_size 快取可重用執行緒數,見笑建立新執行緒的開銷
● sort/join/read buffer size 分配給每個執行緒中處理排序/掃描表連線及索引的記憶體
● skip-bdb 等,禁用不必要的引擎
● query_cache_size 控制分配給查詢快取的記憶體總量
● long_query_time 設定慢查詢時間
● external-locking 禁止使用外部鎖,可預防死鎖
● back_log 臨時停止響應新請求前在短時間內可以堆起多少請求。如果你需要在短時間內允許大量連線,可以增加該數值
● table_cache 快取資料表的數量,避免重複開啟表的開銷
● thread_cache_size 快取可重用執行緒數,見笑建立新執行緒的開銷
● sort/join/read buffer size 分配給每個執行緒中處理排序/掃描表連線及索引的記憶體
● skip-bdb 等,禁用不必要的引擎
InnoDB 優化:
● 如果資料庫CPU使用率小於70%,則MySQL的壓力可能在於磁碟
因素,可能有太多的事務和提交,或者緩衝池太小。可以另緩衝池更大一些,但不要設定緩衝池等於或超過實體記憶體的80%
● 把多個修改(INSERT/UPDATE/DELETE)放在一個事務裡。但是也要注意有此產生的效率問題
● innodb_flush_log_at_trx_commit 設定為0(每秒重新整理),1(實時重新整理),2(只寫日誌檔案,不重新整理到磁碟)
● 使用較大日誌檔案及較大日誌緩衝
● 往innoDB表匯入資料時,先關閉autocommit模式,否則會實時重新整理資料到磁碟
● 更多的請檢視:http://imysql.cn/?q=node/116 innodb_buffer_pool_size 控制分配給包括叢集資料以及
次要索引頁的Innodb快取的記憶體總數,預設16MB
● innodb_additional_mem_pool_size 控制分配給對Innodb內部資料字典進行排序所需的緩衝,預設1MB
● innodb_log_buffer_size 控制分配給對Innodb儲存提前寫日誌記錄所需的緩衝,預設1MB
● innodb_log_files_in_group 在日誌組裡日誌檔案的數目。InnoDB以迴圈方式寫進檔案。預設是2(推薦)
● innodb_log_file_size 預設是5MB。建議值從1MB到N分之一緩衝池大小,其中N是組裡日誌檔案的數目
因素,可能有太多的事務和提交,或者緩衝池太小。可以另緩衝池更大一些,但不要設定緩衝池等於或超過實體記憶體的80%
● 把多個修改(INSERT/UPDATE/DELETE)放在一個事務裡。但是也要注意有此產生的效率問題
● innodb_flush_log_at_trx_commit 設定為0(每秒重新整理),1(實時重新整理),2(只寫日誌檔案,不重新整理到磁碟)
● 使用較大日誌檔案及較大日誌緩衝
● 往innoDB表匯入資料時,先關閉autocommit模式,否則會實時重新整理資料到磁碟
● 更多的請檢視:http://imysql.cn/?q=node/116 innodb_buffer_pool_size 控制分配給包括叢集資料以及
次要索引頁的Innodb快取的記憶體總數,預設16MB
● innodb_additional_mem_pool_size 控制分配給對Innodb內部資料字典進行排序所需的緩衝,預設1MB
● innodb_log_buffer_size 控制分配給對Innodb儲存提前寫日誌記錄所需的緩衝,預設1MB
● innodb_log_files_in_group 在日誌組裡日誌檔案的數目。InnoDB以迴圈方式寫進檔案。預設是2(推薦)
● innodb_log_file_size 預設是5MB。建議值從1MB到N分之一緩衝池大小,其中N是組裡日誌檔案的數目
其他優化:
char 型 vs int 型
● 獨立索引 vs 聯合索引
● 記錄 slow queries
● 使用儲存過程、觸發器、檢視
● 定期執行optimize / analyze table
● 針對Innodb表,儘量不執行 SELECT COUNT(*) 語句
● 善用 EXPLAIN來幫助你分析查詢優化情況
● 如果需要對一個較大的且併發讀寫較多的資料表做 GROUP BY 等統計操作,建議使用摘要表來儲存統計資訊,定期更新統計表
表連線時,連線欄位的型別最好一致(包括欄位長度),這樣的話索引速度快多了
● 大部分情況下,字元型別的欄位索引值需要一部分
● 儘量使用最合適的資料型別,不要浪費空間和效率
● 執行查詢時,儘量不使用外部函式,因為這樣的話就無法使用可能存在的索引
● 把拖沓複雜,速度慢的的查詢分解成多個簡潔明瞭的查詢
● 在索引欄位上使用 LIKE 查詢時,左邊不要使用 '%' 修飾符,這樣就可以利用索引,否則無法使用索引.如 ... `name` LIKE 'yejr%'
● 對於頻繁更改的MyISAM表,應儘量避免更新所有變長欄位(VARCHAR、BLOB和TEXT)
● 分攤壓力,使用叢集/複製
● 查詢時如果有 ORDER BY分句
● 獨立索引 vs 聯合索引
● 記錄 slow queries
● 使用儲存過程、觸發器、檢視
● 定期執行optimize / analyze table
● 針對Innodb表,儘量不執行 SELECT COUNT(*) 語句
● 善用 EXPLAIN來幫助你分析查詢優化情況
● 如果需要對一個較大的且併發讀寫較多的資料表做 GROUP BY 等統計操作,建議使用摘要表來儲存統計資訊,定期更新統計表
表連線時,連線欄位的型別最好一致(包括欄位長度),這樣的話索引速度快多了
● 大部分情況下,字元型別的欄位索引值需要一部分
● 儘量使用最合適的資料型別,不要浪費空間和效率
● 執行查詢時,儘量不使用外部函式,因為這樣的話就無法使用可能存在的索引
● 把拖沓複雜,速度慢的的查詢分解成多個簡潔明瞭的查詢
● 在索引欄位上使用 LIKE 查詢時,左邊不要使用 '%' 修飾符,這樣就可以利用索引,否則無法使用索引.如 ... `name` LIKE 'yejr%'
● 對於頻繁更改的MyISAM表,應儘量避免更新所有變長欄位(VARCHAR、BLOB和TEXT)
● 分攤壓力,使用叢集/複製
● 查詢時如果有 ORDER BY分句
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26855487/viewspace-740413/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MyISAM InnoDB 區別
- MySQL優化篇系列文章(二)——MyISAM表鎖與InnoDB鎖問題MySql優化
- MySQL 配置InnoDB配置非持久優化器統計資訊引數MySql優化
- Sklearn GridSearchCV 引數優化優化
- Mysql 中 MyISAM 和 InnoDB 的區別MySql
- MySQL儲存引擎--MyISAM與InnoDB區別MySql儲存引擎
- MySQL中myisam和innodb有什麼差異?MySql
- MySQL儲存引擎:MyISAM和InnoDB的區別MySql儲存引擎
- MyISAM與innoDB儲存引擎有何差別儲存引擎
- swoole優化核心引數調整優化
- linux核心引數優化重要項Linux優化
- MySQL中MyISAM為什麼比InnoDB查詢快MySql
- 總結MySQL儲存引擎MyISAM與InnoDB區別MySql儲存引擎
- 十八、Mysql儲存引擎並不只有MyISAM、InnoDB——精髓MySql儲存引擎
- MySQL:Innodb:innodb_flush_log_at_trx_commit引數影響的位置MySqlMIT
- MySQL:Innodb Handler_read_*引數解釋MySql
- 資料庫系列:MySQL引擎MyISAM和InnoDB的比較資料庫MySql
- 使用MyISAM表和InnoDB的一些記錄GD
- MySQL三種InnoDB、MyISAM和MEMORY儲存引擎對比MySql儲存引擎
- 雲伺服器innodb資料庫轉引擎為MyISAM伺服器資料庫
- 介紹tomcat Connector 引數優化說明Tomcat優化
- VNPY 批量優化引數,並輸出到excel優化Excel
- MySQL資料庫innodb_fast_shutdown引數MySql資料庫AST
- 調優引數
- MySQL儲存引擎簡介及MyISAM和InnoDB的區別MySql儲存引擎
- MySQL兩種儲存引擎: MyISAM和InnoDB 簡單總結MySql儲存引擎
- MySQL 中 MyISAM 中的查詢為什麼比 InnoDB 快?MySql
- 《MySQL 效能優化》之 InnoDB 儲存引擎MySql優化儲存引擎
- 實用TCP協議(2):TCP 引數優化TCP協議優化
- RocketMQ 4.2.0 broker JVM優化引數深入刨析MQJVM優化
- innodb_flush_log_at_trx_commit引數的直白理解MIT
- MySQL 5.6 innodb_io_capacity引數效能測試MySql
- mysql 引數調優MySql
- 利用粒子群優化演算法(PSO)來優化vnpy的量化策略引數優化演算法
- MySQL 優化六(InnoDB 下 update 資料出現表鎖之優化)MySql優化
- 淺析MySQL語句優化中的explain引數MySql優化AI
- mysql之 CentOS系統針對mysql引數優化MySqlCentOS優化
- MySQL服務端innodb_buffer_pool_size配置引數MySql服務端
- 【效能優化之道】每秒上萬併發下的Spring Cloud引數優化實戰優化SpringCloud