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

深入mysql慢查詢?cè)O(shè)置的詳解

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

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

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

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

slow_query_log
long_query_time = 1

2.測(cè)試慢查詢?nèi)罩竟δ?BR>(1)進(jìn)入MySql控制臺(tái),執(zhí)行如下語(yǔ)句:
復(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 這句是記錄超過(guò)1秒的SQL執(zhí)行語(yǔ)句

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

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

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

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

set global long_query_time=0.1

該句是設(shè)置記錄慢查詢超過(guò)時(shí)間100ms的SQL,記住要重啟mysql才能生效!
(2)測(cè)試
進(jìn)入mysql控制臺(tái),執(zhí)行如下sql語(yǔ)句:
復(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 使用自定義變量進(jìn)行查詢優(yōu)化

    MySQL 使用自定義變量進(jìn)行查詢優(yōu)化

    MySQL自定義變量估計(jì)很少人有用到,但是如果用好了也是可以輔助進(jìn)行性能優(yōu)化的。需要注意的是變量是基于連接會(huì)話的,而且可能存在一些意外的情況,需要小心使用。本篇介紹如何利用自定義變量進(jìn)行查詢優(yōu)化,提高效率
    2021-05-05
  • MySQL的安裝以及基本的管理命令和設(shè)置

    MySQL的安裝以及基本的管理命令和設(shè)置

    這篇文章主要介紹了MySQL的安裝以及基本的管理命令和設(shè)置,是搭建MySQL環(huán)境的基礎(chǔ),需要的朋友可以參考下
    2015-11-11
  • 簡(jiǎn)單談?wù)凪ySQL的半同步復(fù)制

    簡(jiǎn)單談?wù)凪ySQL的半同步復(fù)制

    從MySQL5.5開始,MySQL以插件的形式支持半同步復(fù)制。如何理解半同步呢?今天我們就來(lái)詳細(xì)講解下,希望大家能夠喜歡。
    2017-03-03
  • 分享MySQL生產(chǎn)庫(kù)內(nèi)存異常增高的排查過(guò)程

    分享MySQL生產(chǎn)庫(kù)內(nèi)存異常增高的排查過(guò)程

    這篇文章主要介紹了分享MySQL生產(chǎn)庫(kù)內(nèi)存異常增高的排查過(guò)程,基于MySQL實(shí)例的內(nèi)存使用率高的報(bào)警的問(wèn)題展開對(duì)主題的問(wèn)題,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-04-04
  • MySQL觸發(fā)器Trigger加載及目前局限性

    MySQL觸發(fā)器Trigger加載及目前局限性

    這篇文章主要為大家介紹了MySQL觸發(fā)器Trigger加載以及目前局限性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • MySQL庫(kù)表名大小寫的選擇

    MySQL庫(kù)表名大小寫的選擇

    一般在數(shù)據(jù)庫(kù)使用規(guī)范中,我們都會(huì)看到這么一條:庫(kù)名及表名一律使用小寫英文。你有沒(méi)有思考過(guò),為什么推薦使用小寫呢?庫(kù)表名是否應(yīng)該區(qū)分大小寫呢?帶著這些疑問(wèn),我們一起來(lái)看下本篇文章。
    2021-06-06
  • MySQL分區(qū)之指定各分區(qū)路徑詳解

    MySQL分區(qū)之指定各分區(qū)路徑詳解

    mysql分區(qū)后每個(gè)分區(qū)成了獨(dú)立的文件,雖然從邏輯上還是一張表其實(shí)已經(jīng)分成了多張獨(dú)立的表,下面這篇文章主要給大家介紹了關(guān)于MySQL分區(qū)之指定各分區(qū)路徑的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • MySQL中SQL命令語(yǔ)句條件查詢實(shí)例詳解

    MySQL中SQL命令語(yǔ)句條件查詢實(shí)例詳解

    SELECT語(yǔ)句可以通過(guò)WHERE條件來(lái)設(shè)定查詢條件,查詢結(jié)果是滿足查詢條件的記錄,下面這篇文章主要給大家介紹了關(guān)于MySQL中SQL命令語(yǔ)句條件查詢的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • MySQL追蹤數(shù)據(jù)庫(kù)表更新操作來(lái)源的全面指南

    MySQL追蹤數(shù)據(jù)庫(kù)表更新操作來(lái)源的全面指南

    本文將以一個(gè)具體問(wèn)題為例,如何監(jiān)測(cè)哪個(gè)IP來(lái)源對(duì)數(shù)據(jù)庫(kù)表?statistics_test?進(jìn)行了UPDATE操作,文內(nèi)探討了多種方法,并提供了詳細(xì)的代碼示例,需要的可以了解下
    2025-06-06
  • MySQL創(chuàng)建橫向直方圖的解決方案

    MySQL創(chuàng)建橫向直方圖的解決方案

    這篇文章主要給大家介紹了關(guān)于MySQL創(chuàng)建橫向直方圖的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評(píng)論