MySQL文件
來源:程序員人生 發布時間:2014-12-08 08:43:55 閱讀次數:3008次
1.參數文件
這是MySQL啟動時需要讀取的配置文件,可以通過mysql --help | grep my.cnf來查看啟動時查找的順序。這些參數的值取決于編譯MySQL時指定的默許值或源代碼中指定參數的默許值。可以通過show variables查看
數據庫中的參數,也能夠通過like來過濾參數名,還可以通過information_schema.global_variables視圖來查找。MySQL參數可以分為兩類:
a.靜態(static)參數
在全部實例生命周期內都不得更改,只讀(read only)的。
b.動態(dynamic)參數
在全部實例生命周期內可以更改。通過命令SET | [global | session] system_var_name=expr | [@@global. | @@session. |@@]system_var_name=expr來改變值。其中global表示該參數是基于全部實例的生命周期的,而session是基于當前回話的。
2.日志文件
記錄了影響MySQL
數據庫的各種類型活動。以下配置文件的參數影響2進制日志記錄的信息和行動:max_binlog_size、binlog_cache_size、sync_binlog、binlog-do-db、binlog-ignore-db、log-slave-update、binlog_format。這些參數的含義是甚么,我會在以后的博客中有1篇專門來說解參數,這里就不多說啦。常見的日志文件有:
a.毛病日志(error log)
記錄了MySQL的啟動、關閉、運行進程。在遇到問題時應當首先查看該文件以便于定位問題。該文件不但記錄了所有的毛病信息,也記錄1些正告信息或正確的信息。通過show variables like 'log_error'來定位該文件的位置。在默許情況下,毛病文件的文件名為
服務器的主機名。
b.慢查詢日志(slow query log)
記錄可能存在"問題"的SQL語句,從而進行SQL語句層面的優化。其格式有:FILE和TABLE(information_schema.slow_log)兩種格式,可以通過參數log_output(動態參數)選擇輸出的格式。使用mysqldumpslow命令來查看慢日志文件的內容。被記錄到該文件的幾種情況:
1.通過參數long_query_time來設置被記錄到該文件的閥值。會記錄運行時間超過(大于)該值的所有SQL語句。
2.通過參數long_queries_not_using_indexes來設置將沒有使用索引的SQL語句記錄到慢日志文件中。MySQL5.6版本新增1個參數log_throttle_queries_not_using_indexes來設置每分鐘記錄到slow log的且未使用索引的SQL語句的次數(主要是為了頻繁記錄避免slow log文件不斷增大)。
3.通過參數long_query_io指定將超過設置邏輯IO次數的SQL語句記錄到slow log文件中。
c.2進制日志(binlog)
記錄了對MySQL
數據庫履行IUD操作。其作用主要有以下幾種:
1.恢復(recovery) 某些數據的恢復需要2進制日志.如,在1個
數據庫全備文件恢復后,用戶可以通過2進制日志進行point-in-time的恢復
2.復制(replication) 主要用在master-slave上。
3.審計(audit) 通過2進制日志中的信息來進行審計,判定是不是有對
數據庫進行注入的攻擊。
d.查詢日志(log)
記錄了所有對MySQL
數據庫要求的信息,不管這些要求是不是得到正確的履行。默許文件名為主機名.log。從MySQL5.1版本開始也能夠將該日志記錄到information_chema.general_log表中。
3.套接字文件
在unix下本地連接MySQL可以采取unix域套接字方式,這類方式需要1個套接字(socket)文件。套接字文件可有參數socket控制1般在/tmp目錄下且名稱為mysql.sock。
4.pid文件
當MySQL實例啟動是,會將自己的進程ID寫入1個文件中(pid文件)。該文件可有參數pid_file控制,默許位于
數據庫目錄下,文件文件名為主機名.pid.
5.表結構定義文件
MySQL數據的存儲是根據表進行的,每一個表都會有與之對應的文件。不論表采取何種存儲引擎,MySQL都有1個以.frm為后綴名的文件,這個文件記錄了該表的表結構定義。
6.InnoDB存儲引擎文件
上邊介紹的文件都是MySQL
數據庫本身的文件,和存儲引擎無關。除這些文件以外,每一個表存儲引擎還有其自己獨有的文件。與InnoDB存儲引擎密切相干的文件包括重做日志文件(redo log)和表空間文件(tablespace)。
1.表空間文件
InnoDB采取將存儲的數據按表空間進行寄存。默許配置下會有1個初始大小為10M名為ibdata1的文件。該文件就是默許的表空間文件,可通過參數innodb_data_file_path對其進行設置。默許情況下InnoDB存儲引擎的表的數據都會記錄到該同享表空間中,但是可以通過參數innodb_file_per_table設置,為每一個基于InnoDB存儲引擎的表產生1個獨立表空間。該獨立表空間只是存儲該表的數據、索引和插入緩沖BITMAP等信息,其余的信息還是寄存在默許的表空間中。
2.重做日志文件
默許情況下在數據目錄下會有兩個名為ib_logfile0和ib_logfile1的文件。記錄了對InnoDB存儲引擎的事務日志。當
數據庫宕機時,InnoDB存儲引擎會使用重做日志恢復到故障之前的時刻,以此來保證數據的完全性。以下參數影響重做日志文件的屬性:innodb_log_file_size、innodb_log_files_in_group、innodb_mirrored_log_groups、innodb_log_group_home_dir
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈