mysql配置文件參數詳解


part 1

port = 3306:指定了Mysql開放的端口;

basedir = /usr/local/mysql:指定Mysql安裝的絕對路徑;

datadir = /data/mysql_db_data:指定Mysql數據存放的絕對路徑;

socket = /tmp/mysql.sock:套接字文件

plugin_dir = /usr/local/mysql/lib/plugin:mysql中plugin插件所在的路徑;

log-error = /data/mysql_db/data/error.log:mysql生成的錯誤日志存放的路徑,它是一個文本文件,遇到有什么問題想查看日志時可以到這個文件里去找線索;

symbolic-links = 0:符號連接,如果設置為1,則mysql數據庫和表里的數據支持儲存在datadir目錄之外的路徑下,默認都是0(較新版本的mysql下默認是1);

part 2

local-infile = 0:設置為0表示關閉服務器從本地load的功能,設置為1則打開;

max-connections = 320:設置Mysql的最大連接數;如果實際應用中,並發的連接數量比較大,可以適當的調高此參數,但是,也不是說越高越好,因為這牽涉到服務器的機器硬件的性能。有時候查看日志,會看到例如:“Error 1040 : Too many connections”這樣的錯誤,導致這種錯誤出現的原因通常是由於該參數的值設置過小導致;

query_cache_limit = 4M:指定單個查詢可以使用的緩沖區的大小,一般默認值是1M;

query_cache_size = 64M:查詢的緩存大小設置;

query_cache_type = 1:設置緩存的類型,有以下幾種設置方法:

  (1)設置成0,表示禁用緩存;

  (2)設置成1,表示緩存所有結果;

  (3)設置成2,表示只緩存在select語句中通過SQL_CACHE指定需要緩存的查詢;

max_user_connections = 320:用戶連接數的最大值設置,有時候會出現:“has more than max_user_connections active connections”的錯誤,不一定是該參數的設置個數不夠,有時候需要從代碼里找原因,查看是否連接結束后及時斷開;

wait_timeout = 9000:超時等待時間,單位秒,即一個connection在若干秒內無響應,則服務器切斷與這個客戶端的連接;

connect_timeout = 20:客戶端與服務器建立連接時,服務器返回錯誤的握手協議前,等待數據包到來的最大時間,單位秒;

thread_cache_size = 256:用於緩存空閑的線程;

key_buffer_size = 16M:用於指定索引緩沖區的大小;

part 3

join_buffer_size = 2M:查詢語句中如果較多次使用join查詢時,可適當增大該參數,默認2M,如果幾乎不怎么用join進行查詢,可不予理會;

max_heap_table_size = 16M:指定用戶可創建內存表的大小;

low_priority_updates = 1:設置服務器降低寫操作的優先級,設置為1表示以讀為主;

max_allowd_packet = 128M:設置一次消息傳輸的最大值;

max_seeks_for_key = 100:設置基於key查詢允許的最大查找次數;

sort_buffer_size = 16M:通過增加該值的大小可以提高查詢中使用“group by”和“order by”的性能;

read_buffer_size = 16M:設置服務器讀緩沖區的大小;

max_connect_errors = 10:客戶端連接服務器在沒有成功時就被阻斷了,累計后超過這個設置的值時,服務器將阻止該客戶端后續的所有訪問;

myisam_sort_buffer_size = 64M:服務器重建索引時允許建立的最大臨時文件的大小;

tmp_table_size = 64M:設置臨時內部堆積表(Heap)的大小;read_rnd_buffer_size = 1M:設置服務器隨機讀取緩沖區的大小;

open_file_limit = 6050:控制文件打開的個數;

part4

(1)show status 命令,含義如下:  

  aborted_clients 客戶端非法中斷連接次數
  aborted_connects 連接mysql失敗次數
  com_xxx xxx命令執行次數,有很多條
  connections 連接mysql的數量
  Created_tmp_disk_tables 在磁盤上創建的臨時表
  Created_tmp_tables 在內存里創建的臨時表
  Created_tmp_files 臨時文件數
  Key_read_requests The number of requests to read a key block from the cache
  Key_reads The number of physical reads of a key block from disk
  Max_used_connections 同時使用的連接數
  Open_tables 開放的表
  Open_files 開放的文件
  Opened_tables 打開的表
  Questions 提交到server的查詢數
  Sort_merge_passes 如果這個值很大,應該增加my.cnf中的sort_buffer值
  Uptime 服務器已經工作的秒數

(2)提升性能的建議:
  1.如果opened_tables太大,應該把my.cnf中的table_cache變大
  2.如果Key_reads太大,則應該把my.cnf中key_buffer_size變大.可以用Key_reads/Key_read_requests計算出cache失敗率
  3.如果Handler_read_rnd太大,則你寫的SQL語句里很多查詢都是要掃描整個表,而沒有發揮索引的鍵的作用
  4.如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用Threads_created/Connections計算cache命中率
  5.如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基於內存的臨時表代替基於磁盤的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM