Mysql

僅使用 MyISAM 的 8GB MySQL 伺服器的最佳 my.cnf 配置

  • April 23, 2013

我正在準備一個基於 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 表。

引用自:https://serverfault.com/questions/354872