網(wǎng)站域名有什么用計算機培訓
MySQL 日志
慢查詢?nèi)罩?Slow query log)
- 慢查詢?志由執(zhí)?時間超過系統(tǒng)變量 long_query_time 指定的秒數(shù)的SQL語句組成,并且檢
查的?數(shù)?于系統(tǒng)變量 min_examined_row_limit 指定值。被記錄的慢查詢需要進?優(yōu)化,
可以使?mysqldumpslow客?端程序?qū)β?志進?分析匯總。- 獲取初始鎖的時間不計?執(zhí)?時間,mysqld在執(zhí)?完SQL語句并釋放所有鎖后才將符合條件的語
句寫?慢速查詢?志,因此?志順序可能與執(zhí)?順序不同。
慢查詢?nèi)罩镜膮?shù)
- long_query_time 的默認值是10,最小值是0;
- 默認情況下,不記錄管理語句,也不記錄不使用索引的查詢
- 默認為關(guān)閉(不開啟),要啟?慢查詢?志可以使?:請使用 –slow_query_log[={0|1}]
- 默認日志名為host_name-slow.log,可以使用slow_query_log_file=file_name修改
- 使用 –log-short-format 選項,以簡要格式記錄慢查詢?志
- 要記錄管理語句,啟? log_slow_admin_statements 系統(tǒng)變量。管理語句包括 ALTER
TABLE 、 ANALYZE TABLE 、 CHECK TABLE 、 CREATE INDEX 、 DROP INDEX 、
OPTIMIZE TABLE 和 REPAIR TABLE 。- 要記錄不使?索引的查詢,啟? log_queries_not_using_indexes 系統(tǒng)變量。當記錄不使
?索引的查詢時,?志會快速增長,通過設(shè)置系統(tǒng)變量
log_throttle_queries_not_using_indexes 限制每分鐘寫?慢查詢?志同類查詢的數(shù)
量,默認值是0,表示無限制。
二進制日志(Binary log)
Linux下默認開啟
?進制?志包含數(shù)據(jù)庫更改的"事件",不會記錄 SELECT 和 SHOW ,例如:記錄表的創(chuàng)建操作或
表數(shù)據(jù)的更改,?進制?志還包含每個語句更新數(shù)據(jù)時花費的時間信息,啟動?進制?志,對服務(wù)
器性能稍微有些影響;
除了基于?的?志模式,它還包含可能進?更改數(shù)據(jù)的語句事件,例如 DELETE 操作沒有匹配到
查找到的?;?進制?志的作用:
主從節(jié)點數(shù)據(jù)復制:從節(jié)點服務(wù)器讀取主節(jié)點服務(wù)器上的?進制?志?件,并根據(jù)?進制?志
中記錄的事件在從節(jié)點上執(zhí)?相同的操作,保證主從節(jié)點服務(wù)器上數(shù)據(jù)?致,實現(xiàn)數(shù)據(jù)復制功
能。在主從復制專題中我們重點講解復制過程;
數(shù)據(jù)恢復:從某個時間點恢復備份數(shù)據(jù)后,將重新執(zhí)?備份時間點之后記錄在?進制?志中的
事件。這些事件使數(shù)據(jù)庫從備份點更新到當前最新狀態(tài)
- ?進制?志的語句中如果涉及??的密碼,則由服務(wù)器進?加密,不會以純?本形式出現(xiàn)。
錯誤?志(Error log)
- 主要記錄MySQL服務(wù)器在啟動、運行過程中發(fā)生的錯誤和異常情況。
- 錯誤日志功能是默認開啟的,且無法被禁止。
?般查詢?志(General query log)
- 記錄客戶端連接到MySQL服務(wù)器的時間、用戶、主機等信息。
- 記錄客戶端提交的所有SQL語句,包括數(shù)據(jù)的增刪改查等操作。
- 在MySQL數(shù)據(jù)庫中,一般查詢?nèi)罩竟δ苣J是關(guān)閉的。
中繼日志(Relay Log)
- 中繼日志在從服務(wù)器上記錄主服務(wù)器上的二進制日志(Binary Log)事件。
- 從服務(wù)器通過讀取和執(zhí)行中繼日志中的事件,實現(xiàn)與主服務(wù)器的數(shù)據(jù)同步。
- 默認關(guān)閉
DDL日志(Data Definition Language)
用于記錄數(shù)據(jù)定義語言操作的日志。DDL操作用于管理、維護和修改數(shù)據(jù)庫對象的結(jié)構(gòu),
例如創(chuàng)建和修改數(shù)據(jù)表、視圖、索引和存儲過程等。
默認關(guān)閉
回滾日志/撤銷日志(undo log)
InnoDB存儲引擎用來撤銷SQL操作的一種日志。當一條寫入類型的SQL語句執(zhí)行時,都會記錄Undo Log。
事務(wù)回滾:當事務(wù)出現(xiàn)錯誤或需要主動執(zhí)行回滾操作時,InnoDB使用Undo Log將事務(wù)的操作撤銷,
使數(shù)據(jù)庫恢復到事務(wù)開始之前的狀態(tài)。
MVCC(多版本并發(fā)控制):在并發(fā)場景下,InnoDB通過Undo Log支持MVCC,允許多個事務(wù)并發(fā)執(zhí)行而不會互相阻塞。
Undo Log保存了數(shù)據(jù)的多個版本,事務(wù)可以根據(jù)隔離級別讀取適當?shù)陌姹?#xff0c;而不是總是最新的數(shù)據(jù)。
重做日志(redo log)
Redo Log記錄了對數(shù)據(jù)庫所做的物理修改操作,這些修改操作是在事務(wù)執(zhí)行過程中產(chǎn)生的。
當系統(tǒng)發(fā)生故障或崩潰時,可以利用Redo Log進行數(shù)據(jù)的恢復,確保事務(wù)的持久性。