MySQL日誌:(如下都位全局服務器變量)mysql
MySQL > show global variables like '%log%';
MySQL 6類日誌簡單介紹sql
查詢日誌:默認爲關閉(產生大量寫操做) 全部跟查詢相關的語句 慢查詢日誌:查詢執行時長超過指定時長的查詢,即爲慢查詢 (包括查詢自己,以及查詢所依賴的資源不被容許[表被鎖定]) 錯誤日誌:跟錯誤信息相關,以及mysql啓動,關閉,主從複製等信息 二進制日誌:記錄跟修改相關的操做,用來實現複製的憑據(但是實現數據恢復) 中繼日誌:從服務器上的二進制日誌(從主服務器上覆制過來的) 事務日誌:將隨機I/O轉換爲順序I/O (事務支持回滾) (查詢操做首先在innodb_buffer --> 事務日誌 --> 數據文件) 日誌文件組:至少要存在兩個,實現輪詢(事務日誌所在的硬盤要足夠可靠) 事務若是在數據庫內存中,回滾操做開銷很小 若是數據庫內存空間不夠,事務會存到事務日誌中,回滾開銷適中 若是事務日誌也寫滿,則須要同步到數據文件中,此時回滾操做開銷很是大(要刪除數據文件中的內容) 因此:儘量使用小事務來替代大事務來提高事務引擎的性能 當一個事務提交後,數據會當即同步到事務日誌中去(順序I/O速度較快) 此時若是系統崩潰,下次從新啓動後,事務日誌會將已經提交的數據同步到數據文件中去 而將未提交的事務進行回滾,使數據恢復到一致性狀態 此過程叫作崩潰性恢復 innodb等支持事務的存儲引擎,支持崩潰性恢復 MyISAM不支持崩潰性恢復 MySQL > show global variables like 'innodb%'; ... | innodb_log_group_home_dir ./ | --> 事務日誌存儲位置 ... 相對路徑都是相對於數據目錄
查詢日誌:數據庫
log:{ON|oFF}:是否記錄全部語句的日誌信息於通常查詢日誌文件(general_log)bash
log_output={TABLE|FILE|NONE}服務器
table和file 能夠同時出現,用逗號分隔便可架構
若是設置log_output爲table,表的位置爲mysql庫下的generan_log表ide
MySQL > show tables in mysql like 'general_log'; +-------------------------------+ | Tables_in_mysql (general_log) | +-------------------------------+ | general_log | +-------------------------------+ general_log:是否啓用查詢日誌 general_log_file:定義了通常查詢日誌保存的文件
MySQL > show global variables like 'log'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log | OFF | +---------------+-------+ MySQL > show global variables like 'log_output'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | FILE | +---------------+-------+ MySQL > show global variables like 'general_log'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | OFF | +---------------+-------+ MySQL > show global variables like 'general_log_file'; +------------------+----------------------------+ | Variable_name | Value | +------------------+----------------------------+ | general_log_file | /var/run/mysqld/mysqld.log | +------------------+----------------------------+
慢查詢日誌性能
slow_query_log={ON|OFF} (0禁用,1啓用) (全局)spa
是否啓用慢查詢日誌,它的輸出位置也取決線程
log_output={table|file|none}
表名及位置:mysql庫下的slow_log表
slow_query_log_file:www-slow.log
定義慢查詢日誌的文件路名稱徑及
long_query_time : 10.00000 慢查詢的時間
(將某張表鎖定,可進行實驗,不必定成功)
long_slow_filter:不記錄慢查記錄(過濾器)
log_slow_queries:會話變量,每一個用戶能夠本身管理
log_slow_verbosity:是否記錄詳細的信息
log_slow_rate_limit:速率
錯誤日誌:
服務器啓動和關閉過程當中的信息;
服務器運行過程當中的錯誤信息
事件調度器運行一個事件時產生的信息
在複製架構中的從服務器上啓動從服務器線程時產生的信息
log_error = /path/to/error_log_file
log_warnings = {1|0}
是否記錄警告信息保存至錯誤日誌中