国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

深入mysql慢查詢設(shè)置的詳解

2024-07-24 12:48:27
字體:
供稿:網(wǎng)友

在web開發(fā)中,我們經(jīng)常會寫出一些SQL語句,一條糟糕的SQL語句可能讓你的整個程序都非常慢,超過10秒一般用戶就會選擇關(guān)閉網(wǎng)頁,如何優(yōu)化SQL語句將那些運行時間 比較長的SQL語句找出呢?MySQL給我們提供了一個很好的功能,那就是慢查詢!所謂的慢查詢就是通過設(shè)置來記錄超過一定時間的SQL語句!那么如何應(yīng)用慢查詢呢?

1.開啟MySQL的慢查詢?nèi)罩竟δ?BR>默認(rèn)情況下,MySQL是不會記錄超過一定執(zhí)行時間的SQL語句的。要開啟這個功能,我們需要修改MySQL的配置文件,windows下修改my.ini,Linux下修改my.cnf文件,在[mysqld]最后增加如下命令:

復(fù)制代碼 代碼如下:

slow_query_log
long_query_time = 1

2.測試慢查詢?nèi)罩竟δ?BR>(1)進(jìn)入MySql控制臺,執(zhí)行如下語句:
復(fù)制代碼 代碼如下:

select sleep(2);

mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
|        0 |
+----------+
1 row in set (2.12 sec)
(2)查看慢查詢?nèi)罩疚募hink-slow.log,在文件最后發(fā)現(xiàn):
復(fù)制代碼 代碼如下:

# Time: 121120 20:06:23
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 2.104120  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1353413183;
select sleep(2);

3.解釋:
(1)slow_query_log 這句是開啟記錄慢查詢功能,slow_query_log=0關(guān)閉;slow_query_log=1開啟(這個1可以不寫)

(2)long_query_time = 1 這句是記錄超過1秒的SQL執(zhí)行語句

(3)那么這個日志文件存放在什么地方呢?
默認(rèn)是放在mysql的data目錄,并且文件名為host_name-slow.log即 主機名-slow.log,比如在筆者的開發(fā)機上就是THINK-slow.log(因為偶用的Thinkpad,呵呵)

(4)如果日志文件不想放在data目錄,我們可以通過如下配置指定存放的目錄及日志文件名:
slow_query_log_file=file_name
其中file_name就是你的存放日志的目錄和文件名,在這里注意有的資料上可能是log-slow-queries=file_name,這個在mysql5.5版已經(jīng)過時!

4.如何記錄低于1s的慢查詢記錄呢?
MySQL5.21版以前l(fā)ong_query_time 參數(shù)的單位是秒,默認(rèn)值是10。這相當(dāng)于說最低只能記錄執(zhí)行時間超過 1 秒的查詢,怎么記錄查詢時間超過100毫秒的SQL語句記錄呢?在mysql5.21+后版本支持毫秒記錄
(1)進(jìn)入MySql控制臺,運行如下sql語句:

復(fù)制代碼 代碼如下:

set global long_query_time=0.1

該句是設(shè)置記錄慢查詢超過時間100ms的SQL,記住要重啟mysql才能生效!
(2)測試
進(jìn)入mysql控制臺,執(zhí)行如下sql語句:
復(fù)制代碼 代碼如下:

select sleep(0.5);

查看慢查詢?nèi)罩疚募覀兛吹阶詈筇砑拥男滦畔ⅲ?
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 株洲市| 衡南县| 习水县| 勃利县| 阆中市| 鹤峰县| 亳州市| 鹤庆县| 弋阳县| 陕西省| 当阳市| 和田县| 黑龙江省| 荣昌县| 宜兰县| 梅州市| 云林县| 黄山市| 安远县| 信阳市| 比如县| 兴业县| 溆浦县| 常宁市| 海阳市| 鹤壁市| 长葛市| 故城县| 松潘县| 汽车| 兖州市| 霸州市| 波密县| 丹东市| 辽阳市| 东乌珠穆沁旗| 吉水县| 湖北省| 平舆县| 台山市| 广丰县|