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

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

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

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

答案1:肯定是查詢頻繁的數據庫查詢執(zhí)行時間長的sql。現在我們一一來解決這個問題。

  • 首先如何判斷一個數據庫是否是查詢頻繁呢?

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

SHOW GLOBAL STATUS LIKE 'Com_______';

 我們主要關注:

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

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

 我們又該如何定位針對于那些查詢語句進行優(yōu)化呢? 我們可以借助于慢查詢日志。

慢查詢日志

慢查詢日志記錄了所有執(zhí)行時間超過指定參數(long_query_time,單位:秒,默認10秒)的所有 SQL語句的日志。

MySQL的慢查詢日志默認沒有開啟,我們可以查看一下系統變量 slow_query_log = off

可以通過在配置文件最后增加這兩個配置信進行打開,并且查詢時長不能超過2秒。

# 開啟MySQL慢日志查詢開關
slow_query_log=1
# 設置慢日志的時間為2秒,SQL語句執(zhí)行時間超過2秒,就會視為慢查詢,記錄慢查詢日志
long_query_time=2

配置完畢之后,通過以下指令重新啟動MySQL服務器進行測試,查看慢日志文件中記錄的信息

然后,再次查看開關情況,慢查詢日志就已經打開了。

測試

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

我們之前打開過檢查慢查詢日志。

最終我們發(fā)現,在慢查詢日志中,只會記錄執(zhí)行時間超多我們預設時間(2s)的SQL,執(zhí)行較快的SQL 是不會記錄的

然后在實際開發(fā)中,我們也會出現這個問題,我們寫的SQL邏輯并不復雜卻執(zhí)行了1.9s,這個sql就不會被慢查詢日志記錄,但是我們也應該對其進行優(yōu)化。

profile

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

設置打開。

SET profiling = 1

開關已經打開了,接下來,我們所執(zhí)行的SQL語句,都會被MySQL記錄,并記錄執(zhí)行時間消耗到哪兒去 了。 我們直接執(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的耗時情況:

到這里,我們就可以結合慢查詢日志和profile來輔助分析sql的具體執(zhí)行時間。

總結

  • 慢sql查詢日志修改配置文件,打開慢查詢日志和記錄sql執(zhí)行的最長時間。
  • profile記錄每條sql的執(zhí)行時間,需要進行設置set profiling = 1;

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

相關文章

  • Mysql通過ibd文件恢復數據的詳細步驟

    Mysql通過ibd文件恢復數據的詳細步驟

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

    虛擬機linux端mysql數據庫無法遠程訪問的解決辦法

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

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

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

    mysql數據庫decimal類型與decimal長度用法詳解

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

    MacBook下python3.7安裝教程

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

    SQL 列不同的表查詢結果合并操作

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

    Mysql數據庫報錯2003?Can't?connect?to?MySQL?server?on?

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

    mysql LOAD語句批量錄入數據

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

    基于Php mysql存儲過程的詳解

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

    Mysql| 使用通配符進行模糊查詢詳解(like,%,_)

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

最新評論