MySQL5.6版本后提供了對SQL的跟蹤工具trace,通過使用trace可以讓我們明白optimizer如何選擇執(zhí)行計劃的。
創(chuàng)新互聯(lián)主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、微信小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運作于一體。
使用過程:
配置文件開啟二進制日志,log-bin[=dir/[filename]] 或者set sql_log_bin=1開啟,set sql_log_bin=0關(guān)閉。進入二進制文件目錄,用mysqlbinlog命令查看二進制日志文件。同樣的,開啟通用日志文件也可以追蹤用戶操作記錄。
這個可以借助工具了,如mysql抓包工具 MySQL Sniffer
效果就是,訪問數(shù)據(jù)庫的來源ip,訪問的庫,表,sql這樣的,如下:
在MsSQL Server中我們要追蹤SQL,只需要開啟MS SQL中的事件追蹤器(SQL Server Profiler)就可以了,而且設(shè)置非常的方便。但在MySQL中要實現(xiàn)類似功能需要做些處理,而且操作也比較繁瑣 —— 鼠標黨,被MS毀了。
要啟用MySQL的Sql Trace,需要啟用查詢?nèi)罩竟δ?,各個版本操作不一,下面簡要說明:
在MySql5.1.12之前
在my點吸煙 f或者my.ini中的[mysqld]節(jié)下配置:
log?=?/path/for/file/live-query.log
而這些所有的參數(shù)都是可以在線設(shè)置的,也就是說,如果你不想因為修改設(shè)置而重啟MySql的話,那么在線設(shè)置應(yīng)該是個更好的選擇,在進入MySql的操作中:
--這里按照最新版本來設(shè)置
--查詢關(guān)于log的設(shè)置
SHOW?VARIABLES?LIKE?'general_log%';
/×
返回結(jié)果類似:
+------------------+------------------------------------------------------------
------------------+
|?Variable_name????|?Value
|
+------------------+------------------------------------------------------------
------------------+
|?general_log??????|?OFF
|
|?general_log_file?|?dev-mc.log
|
+------------------+------------------------------------------------------------
------------------+
2?rows?in?set?(0.00?sec)
注意,general_log_file?的默認值是'機器名'.log
*/
--?開啟日志
SET?GLOBAL?general_log?='ON';
--?設(shè)置日志的文件路徑:本例在Windows下
SET?GLOBAL?general_log_file='D:/MySql/live-query.log';
--?設(shè)置完之后,就已經(jīng)生效了