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

MySQL的參數配置和優化設置

編輯:關於MYSQL數據庫
四.MySQL 的參數配置和優化
本節介紹在MySQL 的一般操作中起到關鍵作用的一些配置和優化參數。但首先我們來研究如何快速查看MySQL 的當前設置。
1.查看MySQL 的配置參數
上一節學習了如何調用MySQLd 來了解哪些選項可用.為查看當前的設置,需要執行畔sqladmin 客戶端,如下:
 %>MySQLadmin –u root –p root另外,可以登錄MySQL客戶端,執行如下命令:
 MySQL>SHOW VARIABLES;這樣將得到MySQL的參數列表。
可以通過LIke子句查看單個變量的設置。例如,為確定默認的存儲引擎設置,使用以下命令:
 MySQL>SHOW VARIABLES LIKE "table_type";最後,我們可以通過一個查看命令查看一些非常有趣的切非常重要的統計信息,如正常運行時間,所處理的查詢和收發的總字節數:
 MySQL>SHOW STATUS;2 .管理連接負載
優化的MySQL 服務器能夠同時處理許多連接.每個連接必須由MySQL 主線程接收並委托給一個新線程,這項任務盡管非常簡單,但並不是立即就能完成。back _ 109 參數確定在主線程處理一個特別重的新連接負載時允許排隊的連接數。默認值為50 。
記住,不要以為只將其設為一個非常高的值就能讓MySQL 更高效地運行。操作系統和Web服務器可能還有其他最大值設置,以至於即使這個值特別高也沒有意義。
3 .設置數據目錄位置
將MySQL 數據目錄放在非標准的位置(例如另一個磁盤分區)是一種常見的做法。通過datadir選項可以重新定義此路徑。例如,通常可以裝載目錄的第二個驅動器(如/data ) ,並在名為MySQL 的目錄中存儲數據庫:
 %>.bin/mysqld_safe --datadir=/data/mysqld --user=MySQL &記住,需要將MySQL 許可表復制或移動到此新位置。因為MySQL 的數據庫以文件形式存儲,所以可以使用一般完成此類動作的操作系統命令(如mv 和CP )來完成。如果使用GUI ,可以將這些文件拖放到新位置。
4 .設置默認的存儲引擎
MySQL 支持多種表類型,每種都有其自己的優缺點。如果經常利用某種表類型,可能希望通過default-table-type 參數將其設置為默認選項。例如,可以將默認選項設置為MEMORY ,如下:
 %>.bin/MySQLd_safe --default-table-type=memory指定之後,所有後面的表創建查詢將自動使用MEMORY引擎,除非指定其他表類型。
5 .自動執行SQL 命令
可以把一系列SQL 命令放在一個文本文件中,並把init_file指定為該文本文件的文件名,這樣在守護進程啟動時,就能執行這些SQL 命令。例如,假定希望每次啟動MySQL 服務器時,清除用來存儲會話信息的一個表。將如下查詢放在名MySQLinitcmds.sql的文件中:
DELETE FROM session where rowid;
然後,在執行MySQLd_safe時如下指定init_file :
 %>./bin/mysqld_safe --init_file=/usr/local/mysql/scripts/MySQLinitcmds.sql &6.記錄可能的非最佳查詢
log_querIEs_not_using_indexes參數定義一個文件來記錄所有未使用索引的查詢。經常查看這樣的信息很有用,可以研究對查詢和表結構做哪些改進。
7.記錄慢查詢
此參數定義一個文件來記錄所有執行時間超出long_query_time秒的查詢。每次查詢執行時間超出此限制,就會增加log_slow_querIEs計數器。通過MySQLdumpslow實用工具研究這個日志文件很有用,可以確定數據庫服務器的瓶頸所在。
8.設置最大允許的並發連接數
此參數確定並發數據庫連接的最大數。默認設置為100 。可以查看max_used_connections參數來檢查數據庫打開的並發連接的最大數,執行SHOW STATUS可以得到這個參數。如果看到這個數接近100 , 可以考慮向上調整最大值。記住,隨著連接數的增長,也會逐漸消耗更多內存,因為MySQL 要為打開的每個連接分配額外的內存。
9 .設置MySQL 的通信端口
默認情況下,MySQL 在端口3306 通信。但是,可以通過port 參數重新配置,監聽其他任何端口。
10 .禁用DNS 解決方案
啟用此參數防止MySQL 解析主機名。這表示所有授權表中的所有Host 列值包括一個IP 地址或者localhost。如果計劃只使用IP 地址或localhost ,可以啟用此參數。
11 .限制到本地服務器的連接
啟用skip_networking參數可以防止MySQL 監聽TCP/IP 連接,如果MySQL 位於發起連接的同一台服務器上,這是個明智的選擇。
12 .設置MySQL 守護進程用戶
MySQL守護進程應當按非root 用戶運行,在攻擊者通過MySQL 安全漏洞成功地侵入服務器時,這樣能將破壞減少到最低。雖然常見的做法是以用戶mysql 運行服務器,但也可以以存在的任何用戶運行,只要該用戶是數據目錄的擁有者就可以。例如,假定希望使用用戶MySQL 運行守護進程:
 %>./bin/mysqld_safe –user=MySQL &
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved