程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Mysql MyISAM InnoDB 優化

Mysql MyISAM InnoDB 優化

編輯:關於MYSQL數據庫
MySQL歷史
Mysql MyISAM InnoDB 優化
MYSQL 配置原則配置合理的MySQL MySQL最合理的使用針對MyISAM或InnoDB 針對不同的應用情況進行合理配置針對my.cnf
進行配置,後面設置是針對內存為2G的服務器進行的合理設置
公共選項
Mysql MyISAM InnoDB 優化MyISAM選項
Mysql MyISAM InnoDB 優化
InnoDB選項
Mysql MyISAM InnoDB 優化
MyISAM和InnoDB存儲引擎性能

Mysql MyISAM InnoDB 優化 Mysql MyISAM InnoDB 優化MyISAM和InnoDB
存儲引擎性能差別並不是很大,針對InnoDB來說,影響性能的主要是
innodb_flush_log_at_trx_commit這個選項,如果設置為1 關系,設置為0效率能夠看到明顯提升,當然,同樣你可以SQL
中提交“SET AUTOCOMMIT = 0”來設置達到好的性能。
同時也可以看出值得使用InnoDB來替代myISAM引擎來進行開發,畢竟
InnoDB有多數據庫特性、更良好的數據存儲性能和查詢性能MySQL技巧分享
Mysql MyISAM InnoDB 優化 Mysql MyISAM InnoDB 優化
Mysql MyISAM InnoDB 優化 Mysql MyISAM InnoDB 優化
Mysql MyISAM InnoDB 優化------------------------------------------------------------ 存儲引擎- - My I SAM, I n n oDB ,其他
MyISAM 相對更適合插入不多不頻繁,查詢較多的應用環 WAL(write ahead logging)
 InnoDB適合大並發寫入和查詢的環境:支持事務(ACID 空間(不受大文件限制)
 Merge其實就是MRG_MyISAM,適用於將相同類型的多索引的好處
 ARCHIVE存儲引擎被用來以非常小的覆蓋區存儲大量無
索引數據。 是只讀類型。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 等,禁用不必要的引擎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是組裡日志文件的數目其他優化 - -
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分句
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved