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