程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql server服務器優化方法

mysql server服務器優化方法

編輯:MySQL綜合教程

統變量的當前值可以通過執行mysqladmin variables 命令來檢查。變量可利用- - set - variable var_name = value 選項在命令行設置( -ovar_name = value 是等價的)。如果要想設置幾個變量,可使用多個--set-variable 選項,還可以使用下列語法在一個選項文件的[mysqld] 組中設置變量:
    set -variale=var_name=value
    在附錄E的mysql程序的條款下給出了服務器變量的全部清單。有關性能優化比較常用的變量已在以下列表中給出。您還可以在MySQL參考手冊的“從MySQL中獲得最高性能”一章中找到該主題的附加討論。
    back_log 引入的客戶機連接請求的數量,這些請求在從當前客戶機中處理時排隊。如果您有一個很忙的站點,可以增加該變量的值。
    delayed_queue_size 此變量控制被排隊的INSERT DELAYED 語句中的行數。如果該隊列已滿,則更多的INSERT DELAYED 將堵塞,直到隊列有空間為止,這樣可防止發布那些語句的客戶機繼續進行操作。如果您有許多執行這種INSERT 的客戶機,且發現它們正在堵塞,那麼應增加該變量,使更多的客戶機更快地進行工作( INSERT D E L AYED 在4 . 5節“調度與鎖定問題”中討論)
    flush_time 如果系統有問題並且經常鎖死或重新引導,應將該變量設置為非零值,這將導致服務器按flush_time 秒來刷新表的高速緩存。用這種方法來寫出對表的修改將降低性能,但可減少表訛誤或數據丟失的機會。
    在Windows 中,可以在命令行上用--flush 選項啟動服務器,以迫使表的修改在每次更新後被刷新。
    key _ buffer_size 用於存放索引塊緩沖區的大小。如果增加該變量值,將加快創建和修改索引操作的時間。值越大MySQL就越有可能在內存中查找鍵值,這將減少索引處理所需的磁盤訪問次數。
    在MySQL3.23 以前的版本中,該變量名為key _ buffer。MySQL3.23 及後來的版本同時識別這兩個名字。
    max_allowed_packet 客戶機通信所使用的緩沖區大小的最大值。如果有客戶機要發送大量的BLOB 或TEXT 的值,該服務器變量值可能需要增大。
    客戶機目前使用大小為24MB 的缺省緩沖區。如果有使用較小緩沖區的舊客戶機。可能需要使該客戶機的緩沖區大一些。例如, mysql可以按如下調用來指定一個2 4 MB 信息包的限制值:
    mysql--set-varibale max_allowed_packet=24M
    max_connections 服務器允許的客戶機同時連接的最大數量。如果服務器繁忙,可能需要增加該值。例如,如果您的MySQL服務器被Web 服務器使用來處理由DBI 或PHP 腳本產生的查詢,並且還有大量的Web 通信,如果該變量設置太低的話,則您站點的訪問者會發現請求被拒絕。
    table_cache 表的高速緩存的大小。增加該值可以使mysqld 保持更多的表,同時打開並減少必須進行的文件打開和關閉操作的次數。
    如果增加了max_connections 或table_cache 值的大小,服務器將需要大量的文件描述符。這將引起有關操作系統對文件描述符總進程數量限定的問題,在這種情況下您需要增加該限制值或逐步解決它。由於增加文件描述符數量的限制值,過程會發生變化,所以您可能會在一個運行腳本中使用ulimit 命令時來這樣做,該腳本可用於啟動服務器,或用於重新配置您的系統。有些系統可以通過編輯系統描述文件來簡單地配置和重新引導。對於其他一些系統,則必須編輯一個內核描述文件並重建該內核。如何繼續進行下去,請參考您系統的文檔。
    解決總進程文件描述符限制的一個方法是:將數據目錄分離成多個數據目錄並運行多個服務器。這樣,通過運行多個服務器使可用的描述符數量成倍增長。但另一方面,其他的復雜因素可能會引起問題。由於命名了兩個服務器,您不能從一個單個的服務器上訪問不同數
據目錄中的數據庫,並且還需要在不同服務器之間復制授權表的權限,以便用戶需要訪問一個以上的服務器。
    有兩個變量是管理員為提高性能時常增加的,它們是record _ buffer 和sort _ buffer。這些緩沖區在連接和分類操作中使用,但其值是屬於每個連接的。也就是說,每個客戶機都獲得屬於自己的緩沖區。如果使這些變量的值很大,性能可能會由於昂貴的系統資源的消耗而遭受實際的損失。如果想要修改這些變量,先執行mysqladmin variables 查看一下它們當前的值,然後增量調整其值。這個操作使您能估計為減少嚴重的性能降低所進行的修改的效果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved