Mysql技術內幕InnoDB儲存引擎讀書筆記--《三》檔案

FreeeLinux發表於2017-06-30

本章將分析構成Mysql資料庫和InnoDB儲存引擎表的各種型別檔案,主要有引數檔案、日誌檔案、socket檔案、pid檔案、Mysql表結構檔案、儲存引擎檔案。

3.1引數檔案

Mysql引數檔案my.cnf。Mysql中引數可以分為兩類:動態引數和靜態引數。動態引數意味著可以再Mysql例項執行中進行更改;靜態引數說明在整個例項生命週期內都不能進行更改,就好像是隻讀的。

可以通過SET命令對動態的引數值進行修改,可以 修改當前會話或者整個例項的生命週期。有些動態引數只能在會話中進行修改,如autocommit;有些引數修改完後,在整個例項生命週期內都會生效,如binlog_cache_size;而有些引數既可以在會話又可以再整個例項的生命週期內生效,如read_buffer_size。

3.2日誌檔案

3.2.1錯誤日誌

可以通過 show variables like 'log_error 來定位該檔案。當Mysql自身出現錯誤時,第一時間必須查詢的檔案應該就是錯誤日誌檔案。

3.2.2慢查詢日誌

通過 show variables like '%long% 來檢視慢查詢日誌檔案,通過 show variables like 'log_slow_queries 來檢視慢查詢日誌是否開啟。

設定long_query_time這個時間閾值後,Mysql資料庫會記錄執行時間超過該值的所有SQL語句,而不是大於等於。

另一個和慢查詢日誌有關的引數是log_queries_not_using_indexes,如果執行的SQL語句沒有使用索引,則Mysql資料庫同樣會將這條SQL語句記錄到慢查詢日誌檔案。命令是 show variables like 'log_queries_not_using_indexes

Mysql5.1開始可以將慢查詢的日誌記錄放入一張表中 show create table mysql.slow_log ,通過修改show variables like 'log_output' 中的FILE改為TABLE就可以看到表了。(前提是必須設定log_slow_queries為on)。

3.2.3查詢日誌

查詢日誌記錄了所有對Mysql資料庫請求的資訊,預設檔名為:主機名.log。

3.2.4二進位制日誌

二進位制日誌的作用非常關鍵,可以用來進行point in time的恢復以及複製環境的搭建。因此,建議在任何時候都啟用二進位制日誌的記錄。二進位制日誌支援STATEMENT、ROW、MIX三種格式,用來更好地同步資料庫。

套接字檔案

pid檔案

show variavbles like 'pid_file' \G

表結構定義檔案

InnoDB儲存引擎檔案

主要有表空間檔案和重做日誌檔案。表空間檔案是用來管理InnoDB儲存引擎的儲存,分為共享表空間和獨立表空間。重做日誌非常重要,用來記錄InnoDB儲存引擎的事務日誌,也因為重做日誌的存在,才使得InnoDB儲存引擎可以提供可靠的事務。

相關文章