僅使用 MyISAM 的 8GB MySQL 伺服器的最佳 my.cnf 配置
我正在準備一個基於 Drupal 6.x 的大型安裝,並設置了一個具有 8GB RAM 的專用 MySQL 伺服器。Drupal 6.x 僅使用 MyISAM 引擎,將有大約 500 個並髮使用者通過兩個 Web 節點使用該站點。
這是 mysql 調整入門分析的轉儲,我一大早就拿了它,因為我不確定這是否應該在高使用率期間執行:http: //pastie.org/3279741。
我在 mysql 配置方面不是很有經驗,所以我正在尋求幫助來確定 my.cnf 文件的正確配置,以便我能夠承受負載量。我非常緊急地需要這個,所以不要尋找資源來理解(至少現在不是!)。
提前致謝!
我不知道drupal。但正如你所問的,你需要專門的 MyIsam MySql 配置。對於 MyIsam,我有一些建議
key_buffer_size
Key Buffer 的大小,用於記憶體 MyISAM 表的索引塊。不要將其設置為大於可用記憶體的 30%,因為作業系統還需要一些記憶體來記憶體行。即使您不使用 MyISAM 表,您仍應將其設置為 8-64M,因為它也將用於內部臨時磁碟表。所以你應該把它從 2GB 設置為 3GB。
read_buffer_size
用於對 MyISAM 表進行全表掃描的緩衝區大小。如果需要完整掃描,則按執行緒分配。您應該將其設置為 8MB 到 16MB 。
read_rnd_buffer_size
在排序後按排序順序讀取行時,會通過此緩衝區讀取行以避免磁碟尋軌。如果將其設置為較高的值,您可以大大提高 ORDER BY 的性能。需要時按執行緒分配。
bulk_insert_buffer_size
MyISAM 使用特殊的樹狀記憶體來更快地進行批量插入(即 INSERT … SELECT、INSERT … VALUES (…)、(…)、…和 LOAD DATA INFILE)。此變數限制每個執行緒的記憶體樹大小(以字節為單位)。將其設置為 0 將禁用此優化。請勿將其設置為大於“key_buffer_size”以獲得最佳性能。當檢測到批量插入時分配此緩衝區。將其設置為 512 MB 到 1GB。
myisam_sort_buffer_size
當 MySQL 需要在 REPAIR、OPTIMIZE、ALTER 表語句以及 LOAD DATA INFILE 中將索引重建到空表中時,分配此緩衝區。它是按執行緒分配的,因此請注意大型設置。所以你應該把它設置為2M
myisam_max_sort_file_size
MySQL 在重新創建索引時允許使用的臨時文件的最大大小(在 REPAIR、ALTER TABLE 或 LOAD DATA INFILE 期間。如果文件大小大於此值,則將通過鍵記憶體創建索引(即較慢)。根據需要將其設置為。
myisam_repair_threads
如果一張表有多個索引,MyISAM 可以使用多個執行緒通過並行排序來修復它們。如果您有多個 CPU 和大量記憶體,這很有意義。將其設置為 1。
myisam_recover
自動檢查和修復未正確關閉的 MyISAM 表。