欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2013年06月10日 09:58:06   作者:  
本篇文章是對mysql慢查詢設(shè)置進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

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

1.開啟MySQL的慢查詢?nèi)罩竟δ?BR>默認(rèn)情況下,MySQL是不會記錄超過一定執(zhí)行時(shí)間的SQL語句的。要開啟這個(gè)功能,我們需要修改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開啟(這個(gè)1可以不寫)

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

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

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

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

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

set global long_query_time=0.1

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

select sleep(0.5);

查看慢查詢?nèi)罩疚募覀兛吹阶詈筇砑拥男滦畔ⅲ?BR>
復(fù)制代碼 代碼如下:

# Time: 121120 20:42:06
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 0.500028  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1353415326;
select sleep(0.5);

相關(guān)文章

  • MySQL修改密碼的幾種方式

    MySQL修改密碼的幾種方式

    這篇文章主要介紹了MySQL修改密碼的幾種方式,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-12-12
  • MySQL ClickHouse常用表引擎超詳細(xì)講解

    MySQL ClickHouse常用表引擎超詳細(xì)講解

    這篇文章主要介紹了MySQL ClickHouse常用表引擎,ClickHouse表引擎中,CollapsingMergeTree和VersionedCollapsingMergeTree都能通過標(biāo)記位按規(guī)則折疊數(shù)據(jù),從而達(dá)到更新和刪除的效果
    2022-11-11
  • MySQL中的if和case語句使用總結(jié)

    MySQL中的if和case語句使用總結(jié)

    這篇文章主要介紹了MySQL中的if和case語句使用總結(jié),本文講解了IF語句作為表達(dá)式和流程控制語句使用實(shí)例,需要的朋友可以參考下
    2015-02-02
  • 詳解Mysql 游標(biāo)的用法及其作用

    詳解Mysql 游標(biāo)的用法及其作用

    這篇文章主要介紹了Mysql 游標(biāo)的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • mysql kill process解決死鎖問題

    mysql kill process解決死鎖問題

    這篇文章主要介紹了使用mysql kill process解決死鎖問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL Delete 刪數(shù)據(jù)后磁盤空間未釋放的原因

    MySQL Delete 刪數(shù)據(jù)后磁盤空間未釋放的原因

    這篇文章主要介紹了MySQL Delete 刪數(shù)據(jù)后磁盤空間未釋放的原因,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-05-05
  • MySQL如何從數(shù)據(jù)庫中刪除表中所有數(shù)據(jù)

    MySQL如何從數(shù)據(jù)庫中刪除表中所有數(shù)據(jù)

    這篇文章主要介紹了MySQL如何從數(shù)據(jù)庫中刪除表中所有數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 解決遠(yuǎn)程連接mysql很慢的方法(mysql_connect 打開連接慢)

    解決遠(yuǎn)程連接mysql很慢的方法(mysql_connect 打開連接慢)

    有次同事提出開發(fā)使用的mysql數(shù)據(jù)庫連接很慢,因?yàn)槲覀兊膍ysql開發(fā)數(shù)據(jù)庫是單獨(dú)一臺機(jī)器部署的,所以認(rèn)為可能是網(wǎng)絡(luò)連接問題導(dǎo)致的。
    2011-07-07
  • MySQL索引優(yōu)化之不適合構(gòu)建索引及索引失效的幾種情況詳解

    MySQL索引優(yōu)化之不適合構(gòu)建索引及索引失效的幾種情況詳解

    索引是有雙面性的,合理的建立索引可以提高數(shù)據(jù)庫的效率。但是如果沒有合理的構(gòu)建索引和使用索引,可能會導(dǎo)致索引失效或者影響數(shù)據(jù)庫性能,本文主要討論的是索引失效以及不適合建立索引的場景
    2022-07-07
  • MySQL慢查詢?nèi)罩局械腖ock_time由來解析

    MySQL慢查詢?nèi)罩局械腖ock_time由來解析

    這篇文章主要為大家介紹了慢查詢?nèi)罩局蠰ock_time的由來解析,以及Lock_time?包含哪些鎖等待時(shí)間、以及是怎么計(jì)算得到的,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-06-06

最新評論