程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

優化MYSQL

編輯:關於MYSQL數據庫

    4.6 管理員的優化

    前面各段介紹了普通的MySQL用戶利用表創建和索引操作,以及利用查詢的編寫能夠進行的優化。不過,還有一些只能由MySQL管理員和系統管理員來完成的優化,這些管理員在MySQL服務器或運行MySQL的機器上具有控制權。有的服務器參數直接適用於查詢處理,可將它們打開。而有的硬件配置問題直接影響查詢處理速度,應該對它們進行調整。

    4.6.1服務器參數

    服務器有幾個能夠改變從而影響其操作的參數(或稱變量)。有關服務器參數優化的綜合介紹請參見第11章,但其中幾個參數主要與查詢有關,有必要在此提一下:

    ■ delayed _ queue _ size

    此參數在執行其他INSERT DELAYED 語句的客戶機阻塞以前,確定來自INSERT DELAYED 語句的放入隊列的行的數目。增加這個參數的值使服務器能從這種請求中接收更多的行,因而客戶機可以繼續執行而不阻塞。

    ■ key _ buffer _ size

    此參數為用來存放索引塊的緩沖區尺寸。如果內存多,增加這個值能節省索引創建和修改的時間。較大的值使MySQL能在內存中存儲更多的索引塊,這樣增加了在內存中找到鍵值而不用讀磁盤塊的可能性。在MySQL3.23 版及以後的版本中,如果增加了鍵緩沖區的尺寸,可能還希望用- - init -file 選項啟動服務器。這樣能夠指定一個服務器啟動時執行的SQL 語句文件。如果有想要存放在內存中的只讀表,可將它們拷貝到索引查找非常快的HEAP 表。

    4.6.2 硬件問題

    可利用硬件更有效地改善服務器的性能:

    ■ 在機器中安裝更多的內存。這樣能夠增加服務器的高速緩存和緩沖區的尺寸,使服務器更經常地使用存放在內存中的信息,降低從磁盤取信息的要求。

    ■ 如果有足夠的RAM 使所有交換在內存文件系統中完成,那麼應該重新配置系統,去掉所有磁盤交換設置。否則,即使有足以滿足交換的R A M,某些系統仍然要與磁盤進行交換。

    ■ 增加更快的磁盤以減少I/O 等待時間。尋道時間是這裡決定性能的主要因素。逐字地移動磁頭是很慢的,一旦磁頭定位,從磁道讀塊則較快。

    ■ 在不同的物理設備上設法重新分配磁盤活動。如果可能,應將您的兩個最繁忙的數據庫存放在不同的物理設備上。請注意,使用同一物理設備上的不同分區是不夠的。這樣沒有幫助,因為它們仍將爭用相同的物理資源(磁盤頭)。移動數據庫的過程在第10章中介紹。

    在將數據重新放到不同設備之前,應該保證了解該系統的裝載特性。如果在特定的物理設備上已經有了某些特定的主要活動,將數據庫放到該處實際上可能會使性能更壞。例如,不要把數據庫移到處理大量Web 通信的Web 服務器設備上。

    ■ 在設置MySQL時,應該配置其使用靜態庫而不是共享庫。使用共享庫的動態二進制系統可節省磁盤空間,但靜態二進制系統更快(然而,如果希望裝入用戶自定義的函數,則不能使用靜態二進制系統,因為UDF 機制依賴於動態連接)。

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