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

MySQL執(zhí)行時(shí)間的查詢

 更新時(shí)間:2023年04月09日 14:03:08   作者:兜兜轉(zhuǎn)轉(zhuǎn)m  
這篇文章主要介紹了MySQL執(zhí)行時(shí)間的查詢,查詢頻繁的數(shù)據(jù)庫和查詢執(zhí)行時(shí)間長(zhǎng)的sql,文章中有詳細(xì)的代碼實(shí)例,感興趣的同學(xué)可以參考閱讀

上一節(jié)我們介紹了MySQL的索引,用于提高查詢效率。那么我們應(yīng)該優(yōu)化哪些庫的哪些sql呢?

答案1:肯定是查詢頻繁的數(shù)據(jù)庫查詢執(zhí)行時(shí)間長(zhǎng)的sql?,F(xiàn)在我們一一來解決這個(gè)問題。

  • 首先如何判斷一個(gè)數(shù)據(jù)庫是否是查詢頻繁呢?

 我們可以看它的狀態(tài)信息

SHOW GLOBAL STATUS LIKE 'Com_______';

 我們主要關(guān)注:

  • Com_delete: 刪除次數(shù) 
  • Com_insert: 插入次數(shù)
  • Com_select: 查詢次數(shù)
  • Com_update: 更新次數(shù)

 通過上述指令,我們可以查看到當(dāng)前數(shù)據(jù)庫到底是以查詢?yōu)橹?,還是以增刪改為主,從而為數(shù)據(jù) 庫優(yōu)化提供參考依據(jù)。 如果是以增刪改為主,我們可以考慮不對(duì)其進(jìn)行索引的優(yōu)化。 如果是以 查詢?yōu)橹?,那么就要考慮對(duì)數(shù)據(jù)庫的索引進(jìn)行優(yōu)化了。

 我們又該如何定位針對(duì)于那些查詢語句進(jìn)行優(yōu)化呢? 我們可以借助于慢查詢?nèi)罩尽?/p>

慢查詢?nèi)罩?/h2>

慢查詢?nèi)罩居涗浟怂袌?zhí)行時(shí)間超過指定參數(shù)(long_query_time,單位:秒,默認(rèn)10秒)的所有 SQL語句的日志。

MySQL的慢查詢?nèi)罩灸J(rèn)沒有開啟,我們可以查看一下系統(tǒng)變量 slow_query_log = off

可以通過在配置文件最后增加這兩個(gè)配置信進(jìn)行打開,并且查詢時(shí)長(zhǎng)不能超過2秒。

# 開啟MySQL慢日志查詢開關(guān)
slow_query_log=1
# 設(shè)置慢日志的時(shí)間為2秒,SQL語句執(zhí)行時(shí)間超過2秒,就會(huì)視為慢查詢,記錄慢查詢?nèi)罩?
long_query_time=2

配置完畢之后,通過以下指令重新啟動(dòng)MySQL服務(wù)器進(jìn)行測(cè)試,查看慢日志文件中記錄的信息

然后,再次查看開關(guān)情況,慢查詢?nèi)罩揪鸵呀?jīng)打開了。

測(cè)試

執(zhí)行如下Sql,一個(gè)查詢耗時(shí)0.00033秒,一個(gè)耗時(shí)13.35秒

我們之前打開過檢查慢查詢?nèi)罩尽?/p>

最終我們發(fā)現(xiàn),在慢查詢?nèi)罩局?,只?huì)記錄執(zhí)行時(shí)間超多我們預(yù)設(shè)時(shí)間(2s)的SQL,執(zhí)行較快的SQL 是不會(huì)記錄的

然后在實(shí)際開發(fā)中,我們也會(huì)出現(xiàn)這個(gè)問題,我們寫的SQL邏輯并不復(fù)雜卻執(zhí)行了1.9s,這個(gè)sql就不會(huì)被慢查詢?nèi)罩居涗洠俏覀円矐?yīng)該對(duì)其進(jìn)行優(yōu)化。

profile

  • show profiles 能夠在做SQL優(yōu)化時(shí)幫助我們了解時(shí)間都耗費(fèi)到哪里去了。
  • 通過have_profiling 參數(shù),能夠看到當(dāng)前MySQL是否支持profile操作:

設(shè)置打開。

SET profiling = 1

開關(guān)已經(jīng)打開了,接下來,我們所執(zhí)行的SQL語句,都會(huì)被MySQL記錄,并記錄執(zhí)行時(shí)間消耗到哪兒去 了。 我們直接執(zhí)行如下的SQL語句:

select * from tb_user;
select * from tb_user where id = 1;
select * from tb_user where name = '白起';
select count(*) from tb_sku;

查看每一條SQL的耗時(shí)情況:

到這里,我們就可以結(jié)合慢查詢?nèi)罩竞蚿rofile來輔助分析sql的具體執(zhí)行時(shí)間。

總結(jié)

  • 慢sql查詢?nèi)罩拘薷呐渲梦募?,打開慢查詢?nèi)罩竞陀涗泂ql執(zhí)行的最長(zhǎng)時(shí)間。
  • profile記錄每條sql的執(zhí)行時(shí)間,需要進(jìn)行設(shè)置set profiling = 1;

 到此這篇關(guān)于MySQL執(zhí)行時(shí)間的查詢的文章就介紹到這了,更多相關(guān)MySQL時(shí)間的查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql通過ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟

    Mysql通過ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟

    mysql在使用的過程中,難免遇到數(shù)據(jù)庫表誤操作,下面這篇文章主要給大家介紹了關(guān)于Mysql通過ibd文件恢復(fù)數(shù)據(jù)的詳細(xì)步驟,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 虛擬機(jī)linux端mysql數(shù)據(jù)庫無法遠(yuǎn)程訪問的解決辦法

    虛擬機(jī)linux端mysql數(shù)據(jù)庫無法遠(yuǎn)程訪問的解決辦法

    最近在項(xiàng)目搭建過程中遇到一問題,有關(guān)虛擬機(jī)linux端mysql數(shù)據(jù)庫無法遠(yuǎn)程訪問,通過查閱相關(guān)數(shù)據(jù)庫資料問題解決,下面把具體的解決辦法分享給大家,有需要的朋友可以參考下
    2015-08-08
  • 淺析mysql交互式連接&非交互式連接

    淺析mysql交互式連接&非交互式連接

    下面小編就為大家?guī)硪黄獪\析mysql交互式連接&非交互式連接。小編覺挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-03-03
  • mysql數(shù)據(jù)庫decimal類型與decimal長(zhǎng)度用法詳解

    mysql數(shù)據(jù)庫decimal類型與decimal長(zhǎng)度用法詳解

    在MySQL中decimal是一種用于存儲(chǔ)精確數(shù)字的數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫decimal類型與decimal長(zhǎng)度用法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • MacBook下python3.7安裝教程

    MacBook下python3.7安裝教程

    這篇文章主要為大家詳細(xì)介紹了MacBook下python3.7安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • SQL 列不同的表查詢結(jié)果合并操作

    SQL 列不同的表查詢結(jié)果合并操作

    這篇文章主要介紹了SQL 列不同的表查詢結(jié)果合并操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Mysql數(shù)據(jù)庫報(bào)錯(cuò)2003?Can't?connect?to?MySQL?server?on?'localhost'?(10061)解決

    Mysql數(shù)據(jù)庫報(bào)錯(cuò)2003?Can't?connect?to?MySQL?server?on?

    最近在用mysql,打開mysql的圖形化界面要連接時(shí)出現(xiàn)2003錯(cuò)誤,所以下面這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫報(bào)錯(cuò)2003?Can't?connect?to?MySQL?server?on?'localhost'?(10061)的解決方式,需要的朋友可以參考下
    2022-09-09
  • mysql LOAD語句批量錄入數(shù)據(jù)

    mysql LOAD語句批量錄入數(shù)據(jù)

    本章的前面討論如何使用SQL向一個(gè)表中插入數(shù)據(jù)。但是,如果你需要向一個(gè)表中添加許多條記錄,使用SQL語句輸入數(shù)據(jù)是很不方便的。
    2010-03-03
  • 基于Php mysql存儲(chǔ)過程的詳解

    基于Php mysql存儲(chǔ)過程的詳解

    本篇文章是對(duì)Php中的mysql存儲(chǔ)過程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Mysql| 使用通配符進(jìn)行模糊查詢?cè)斀?like,%,_)

    Mysql| 使用通配符進(jìn)行模糊查詢?cè)斀?like,%,_)

    這篇文章主要介紹了Mysql| 使用通配符進(jìn)行模糊查詢?cè)斀?like,%,_),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評(píng)論