優化MYSQL伺服器

2021-04-12 14:56:49 字數 2293 閱讀 8093

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 檢視一下它們當前的值,然後增量調整其值。這個操作使您能估計為減少嚴重的效能降低所進行的修改的效果。 

MySQL優化 伺服器優化

標籤 空格分隔 mysql 伺服器的硬體效能直接決定著mysql資料庫的效能,硬體的效能瓶頸,直接決定mysql資料庫的執行速度和效率。需要從以下幾個方面考慮 1 配置較大的記憶體。足夠大的記憶體,是提高mysql資料庫效能的方法之一。記憶體的io比硬碟快的多,可以增加系統的緩衝區容量,使資料在記憶...

優化MYSQL伺服器

mysql伺服器有幾個影響其操作的引數 變數 如果預設的引數值不合適,可以將其修改為對伺服器執行環境更合適的值。例如,如果您有大量的記憶體,可以告訴服務為磁碟和索引操作使用較大的緩衝區。這將使記憶體持有更多的資訊並減少了必須進行的磁碟訪問的數 量。如果是一般的系統,可以告訴伺服器使用較小的緩衝區,以...

優化MYSQL伺服器

mysql伺服器有幾個影響其操作的引數 變數 如果預設的引數值不合適,可以將其修改為對伺服器執行環境更合適的值。例如,如果您有大量的記憶體,可以告訴服務為磁碟和索引操作使用較大的緩衝區。這將使記憶體持有更多的資訊並減少了必須進行的磁碟訪問的數 量。如果是一般的系統,可以告訴伺服器使用較小的緩衝區,以...