在日常開發(fā)當中,經(jīng)常會遇到頁面打開速度極慢的情況,通過排除,確定了,是數(shù)據(jù)庫的影響,為了迅速查找具體的SQL,可以通過Mysql的日志記錄方法。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、成都小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了古塔免費建站歡迎大家使用!
-- 打開sql執(zhí)行記錄功能
set global log_output='TABLE'; -- 輸出到表
set global log=ON; -- 打開所有命令執(zhí)行記錄功能general_log, 所有語句: 成功和未成功的.
set global log_slow_queries=ON; -- 打開慢查詢sql記錄slow_log, 執(zhí)行成功的: 慢查詢語句和未使用索引的語句
set global long_query_time=0.1; -- 慢查詢時間限制(秒)
set global log_queries_not_using_indexes=ON; -- 記錄未使用索引的sql語句
-- 查詢sql執(zhí)行記錄
select * from mysql.slow_log order by 1; -- 執(zhí)行成功的:慢查詢語句,和未使用索引的語句
select * from mysql.general_log order by 1; -- 所有語句: 成功和未成功的.
-- 關閉sql執(zhí)行記錄
set global log=OFF;
set global log_slow_queries=OFF;
-- long_query_time參數(shù)說明
-- v4.0, 4.1, 5.0, v5.1 到 5.1.20(包括):不支持毫秒級別的慢查詢分析(支持精度為1-10秒);
-- 5.1.21及以后版本 :支持毫秒級別的慢查詢分析, 如0.1;
-- 6.0 到 6.0.3: 不支持毫秒級別的慢查詢分析(支持精度為1-10秒);
-- 6.0.4及以后:支持毫秒級別的慢查詢分析;
通過日志中記錄的Sql,迅速定位到具體的文件,優(yōu)化sql看一下,是否速度提升了呢?
1,配置開啟
Linux:
在mysql配置文件my.cnf中增加
log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以為空,系統(tǒng)會給一個缺省的文件host_name-slow.log)long_query_time=2 (記錄超過的時間,默認為10s)log-queries-not-using-indexes (log下來沒有使用索引的query,可以根據(jù)情況決定是否開啟)log-long-format (如果設置了,所有沒有使用索引的查詢也將被記錄)
Windows:
在my.ini的[mysqld]添加如下語句:log-slow-queries = E:\web\mysql\log\mysqlslowquery.loglong_query_time = 2(其他參數(shù)如上)
2,查看方式
Linux:
使用mysql自帶命令mysqldumpslow查看
常用命令
-s ORDER what to sort by (t, at, l, al, r, ar etc), 'at’ is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
s,是order的順序,說明寫的不夠詳細,包括看了代碼,主要有 c,t,l,r和ac,at,al,ar,分別是按照query次數(shù),時間,lock的時間和返回的記錄數(shù)來排序,前面加了a的時倒序 -t,是top ?n的意思,即為返回前面多少條的數(shù)據(jù) -g,后邊可以寫一個正則匹配模式,大小寫不敏感的
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令可以看出訪問次數(shù)最多的20個sql語句和返回記錄集最多的20個sql。
mysqldumpslow -t 10 -s t -g “l(fā)eft join” host-slow.log這個是按照時間返回前10條里面含有左連接的sql語句。
默認是關閉狀態(tài):mysql? show variables like "%slow%";
開啟方法:mysql set global slow_query_log='ON';
另外 可以根據(jù)自己的需要設置慢查詢的時間,默認是10秒:
設置方法:mysql set long_query_time=5;
標題名稱:mysql慢查詢怎么打開,mysql 慢查詢
地址分享:http://chinadenli.net/article22/dsehejc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、網(wǎng)頁設計公司、營銷型網(wǎng)站建設、品牌網(wǎng)站制作、網(wǎng)站建設、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)