?????
?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 查看一下它們當前的值,然后增量調整其值。這個操作使您能估計為減少嚴重的性能降低所進行的修改的效果。
?
?? 量。如果是一般的系統,可以告訴服務器使用較小的緩沖區,以防止它擾亂系統資源損害其他的進程。
????系統變量的當前值可以通過執行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 查看一下它們當前的值,然后增量調整其值。這個操作使您能估計為減少嚴重的性能降低所進行的修改的效果。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1441574
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
