標籤:
資料庫檔案
MySQL主要檔案類型有如下幾種
參數檔案:my.cnf——MySQL執行個體啟動的時候在哪裡可以找到資料庫檔案,並且指定某些初始化參數,這些參數定義了某種記憶體結構的大小等設定,還介紹了參數類型以及定義範圍;
記錄檔:記錄MySQL對某種條件做出響應時候寫入的檔案,包括錯誤記錄檔、查詢日誌、慢查詢日誌、二進位日誌;
Mysql表結構檔案:存放MySQL表結構定義檔案,不論採用何種儲存引擎,MySQL都有一個以frm為尾碼名的檔案;
Socket檔案:當用linux的MySQL命令列視窗登入的時候需要的檔案;
Pid檔案:MySQL執行個體的進程ID檔案;
儲存引擎檔案:每個儲存引擎都有自己的檔案夾來儲存各種資料,這些儲存引擎真正儲存了資料和索引等資料。
參數檔案
當MySQL執行個體啟動時,MySQL會讀取一個配置參數檔案,用來尋找資料庫的各種檔案所在位置以及指定某些初始化參數,這些參數通常定義了某種記憶體結構有多大等設定。預設情況下,MySQL執行個體會按照一定的次序去取,可以通過命令列,查看my.cnf檔案的位置;
mysql --help | grep my.cnf
Mysql在啟動時可以不需要參數檔案,但是如果在預設的資料庫目錄下找不到mysql架構,則啟動會失敗;
Mysql的參數可以通過“show variables”來查看,由於從mysql5.1版本開始,可以通過information_schema架構下的GLOBAL_VARIABLES視圖來進行尋找,所以也可以這樣查看
- select * from information_schema.global_variables;
Mysql 的參數類型:分為動態(dynamic)和靜態參數(static)。
動態參數意味著可以再mysql執行個體運行中變更,有些參數修改可以是基於會話的也可以是基於整個執行個體的生命週期;
靜態參數說明在整個執行個體聲明周期內都不得變更,就好像是唯讀(read only)的。。Mysql5.1的動態參數在這裡。
記錄檔一般來說記錄檔的存放路徑如下:
該檔案對Mysql的啟動、運行、關閉過程進行了記錄,在遇到問題時,首先應該查看此檔案,可以通過“show variables like ‘log_error’;”來定位該檔案。
該檔案記錄了所有已耗用時間超過閥值的SQL語句,該閥值可以通過參數long_query_time來設定。預設值為10秒。
show variables like ‘long_query_time‘;
但是在預設情況下,Mysql並不啟動滿查詢日誌,需要手工修改這個參數;
show variables like ‘log_slow_queries‘;
需要注意的兩點內容:首先,慢查詢日誌記錄的是大於閥值的SQL語句,而不是大於等於!!!其次,從Mysql 5.1開始,long_quey_time開始以微秒記錄sql語句已耗用時間。
另一個和慢查詢相關的參數是log_queries_not_using_index,如果啟動並執行SQL語句沒有使用索引,則Mysql則同樣會將這條SQL語句記錄到慢查詢記錄檔中;
show variables like ‘log_queries_not_using_indexes‘;
在慢查詢記錄檔逐漸增大時,可考慮使用工具mysqldumpslow工具協助我們分析。該工具的使用您可以使用 “man mysqldumpslow” 或者去這裡瞭解。Mysql5.1開始可以將慢查詢的日誌記錄放入一張表中,該表在mysql.slow_log表中。是否放在表中由參數‘log_output’來決定;
參數log_output指定了慢查詢輸出的格式,預設為FILE,也可以將其設定為TABLE,就可以去Mysql.slow_log中去查詢了。
show variables like ‘log_output‘;
同樣也可以將查詢日誌的記錄放入mysql架構下的general_log表。
查詢日誌記錄了所有對Mysql資料庫請求的資訊,不論這些請求是否得到了正確的執行。預設檔案名稱為:主機名稱.log。我們查看一個查詢日誌:
4、二進位日誌因為二進位日誌太重要了,在這裡暫且不提。InnoDB儲存引擎檔案
來自為知筆記(Wiz)
MySQL學習筆記-資料庫檔案