茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1730064 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_0032.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [轉貼]MySQL 優化大全:設定 my.cnf 優化指南

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[轉貼]MySQL 優化大全:設定 my.cnf 優化指南
MySQL 優化大全:設定 my.cnf 優化指南

Linux 下的 my.cnf 文件位置:
Redhat是在 /etc/my.cnf;
Debian是在 /etc/mysql/my.cnf;
Windows是在 my.ini 文件中

Memory 在 1GB 以上:
[client]
port = 3306
socket = /var/tmp/mysql.sock

[mysqld]
port = 3306
socket = /var/tmp/mysql.sock
skip-locking
set-variable = key_buffer=384M
set-variable = max_allowed_packet=1M
set-variable = table_cache=512
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = join_buffer_size=4M
set-variable = thread_cache=8
#thread_concurrency = 主機cpu數量*2
set-variable = thread_concurrency=2
set-variable = myisam_sort_buffer_size=64M
set-variable = max_connections=750
log-bin
server-id = 1

[mysqldump]
quick
set-variable = max_allowed_packet=16M

[mysql]
no-auto-rehash

[isamchk]
set-variable = key_buffer=256M
set-variable = sort_buffer=256M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[myisamchk]
set-variable = key_buffer=256M
set-variable = sort_buffer=256M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[mysqlhotcopy]
interactive-timeout
----------------------------------------------------------------

注意事項
key_buffer_size + (record_buffer + sort_buffer)*max_connections <= 2G

如果不熟悉 my.cnf 內的設定也沒關係,可以直接使用 MySQL 的範例檔,在 /usr/share/mysql/ 下會有 my-huge.cnf, my-large.cnf, my-medium.cnf 及 my-small.cnf 幾個檔案,根據伺服器的硬件而選擇適合的檔案:
    * my-huge.cnf: 適合 1GB - 2GB RAM的主機使用。
    * my-large.cnf: 適合 512MB RAM的主機使用。
    * my-medium.cnf: 只有 32MB - 64MB RAM 的主機使用,或者有 128MB RAM 但需要運行其他伺服器,例如 web server。
    * my-small.cnf: 記憶體少於 64MB 時適用這個,MySQL 會佔用較少資源。

我選用了 my-large.cnf,只要執行以下指令便完成了,但如果你原先已經有 my.cnf,請先備份起來及自行調整:
shell> cp /usr/share/mysql/my-large.cnf /etc/my.cnf
shell> /etc/init.d/mysqld restart

以上的第二句是重新啟動 MySQL,請根據你的系統設定修改。
開啟 MySQL query cache
如果 MySQL server 是非常繁忙,可以開啟 query cache 以加速回應時間,開啟方法可以在 my.cnf 裡面加入以下項目:
(Redhat 下面是 /etc/my.cnf;Debian 是在 etc/mysql/my.cnf)
query_cache_size = 268435456
query_cache_type = 1
query_cache_limit = 1048576

以上語法的設定裡面,query_cache_size 是分配 256MB 記憶體空間給 query cache;query_cache_type 設定成 1,是給所有的查詢做 cache;query_cache_limit 是指定個別的查詢語句 1KB 的記憶體空間。

這些數值可根據自己的需要作出更改,設定及存檔後,重新啟動 MySQL 即可。

原文出處:MySQL 優化大全:設定 my.cnf 優化指南 - Linux, Unix, FreeBSD專區 - 頂客論壇 - 台灣forum,Taiwan論壇bbs
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|