中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做app網站制作上海牛巨微網絡科技有限公司

做app網站制作,上海牛巨微網絡科技有限公司,神木網站設計公司,北京網站建設天下公司在上篇文章我們學習了MySQL進階——存儲引擎,這篇文章學習MySQL進階——SQL性能分析。 SQL性能分析主要是從SQL語句執(zhí)行頻率、耗時時間、CPU使用情況和執(zhí)行時表連接情況進行分析,常用的方法工具有:SQL執(zhí)行頻率、慢查詢日志、profile詳情和ex…

在上篇文章我們學習了MySQL進階——存儲引擎,這篇文章學習MySQL進階——SQL性能分析。

SQL性能分析主要是從SQL語句執(zhí)行頻率、耗時時間、CPU使用情況和執(zhí)行時表連接情況進行分析,常用的方法工具有:SQL執(zhí)行頻率、慢查詢日志、profile詳情和explain執(zhí)行計劃。

SQL執(zhí)行頻率

通過show [session|global] status命令可以提供服務器狀態(tài)信息,通過如下命令,可以查看當前數據庫的增刪改查的訪問頻率:

SHOW?GLOBAL?STATUS?LIKE?'Com_______';

其中:一個‘_’表示一個字符。

運行結果如下:

慢查詢日志

通過SQL執(zhí)行頻率,我們可以發(fā)現增數據的SQL語句執(zhí)行頻率更多,但無法知道哪條SQL語句執(zhí)行情況。

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

執(zhí)行如下命令查看是否開啟慢查詢日志,

show?variables?like?'slow_query_log';

如下圖所示:

配置文件開啟

默認情況下,MySQL的慢查詢日志是關閉的,我們可以在MySQL的配置文件(/etc/my.cnf)添加如下命令開啟慢查詢日志,

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

如下圖所示:

注意:如果是在docker安裝的mysql,需要先執(zhí)行如下命令,進入MySQL容器內部再在MySQL配置文件中添加開啟慢查詢日志代碼。

docker?exec?-it?容器ID??/bin/bash

在/etc/my.cnf文件添加如下圖代碼:

配置完成后需要重啟MySQL服務器。

查看慢查詢日志開啟,如下圖所示:

SQL命令開啟

當然我們也可以通過在mysql中執(zhí)行如下命令,開啟慢查詢日志,

set?global?slow_query_log?=?ON;
set?global?slow_launch_time?=?3;
show?variables?like?'slow%';

如下圖所示:

注意:這種開啟方式不是永久開啟慢查詢日志,只要MySQL重啟了,慢查詢日志就會關閉。

示例

當我們執(zhí)行了SQL語句而操作時長超過2秒,就會記錄慢查詢,這里我們執(zhí)行了刪除UserTable表操作,大概用了10秒,慢日志如下圖所示:

在日志中,我們可以看到執(zhí)行日期、時長、用戶、IP、數據庫和SQL語句等相關信息。

profile詳情

在慢查詢日志中,我們只能獲取超過設置的時間SQL語句信息,例如設置的時長為2秒,那么只能獲取超過2秒的SQL語句信息,執(zhí)行了1.99秒的SQL語句無法獲取,這時我們就可以使用profie詳情。

profiles詳情能夠在做SQL優(yōu)化時幫助我們了解時間都耗費到哪里去了。

首先通過have_profiling參數,查看當前MySQL是否支持profile操作:

SELECT?@@have_profiling;

如下圖所示:

接著執(zhí)行如下代碼查看profile是否開啟,

SELECT?@@profiling;???#?查看是否開啟
SET?profiling=1;???#?開啟profile

如下圖所示:

接下來我們就可以使用show profiles命令查看SQL語句詳情的執(zhí)行時間了,如下圖所示:

這樣我們就可以查看每條SQL語句的耗時情況,我們可以通過上面的Query_ID詳細地查看SQL語句各階段的耗時情況、CPU使用情況,可以執(zhí)行如下代碼:

#?show?profile?for?query?Query_ID;???#?查看SQL語句各階段的耗時情況
#?show?profile?cpu?for?query?Query_ID;??#?查看SQL語句CPU使用情況

如下圖所示:

explain執(zhí)行計劃

在上面的SQL性能分析中,我們只能獲取到SQL語句的頻率和耗時時間,無法知道SQL語句的執(zhí)行過程中的表連接情況,這時我們可以通過explain或desc命令來查看SQL語句的執(zhí)行過程中的表連接情況,其使用方法如下:

explain/desc?SQL語句;

如下圖所示:

其中:

  • ID:select查詢的序列號,表示查詢中執(zhí)行select子句或者操作表的順序,ID相同,執(zhí)行順序從上到下,ID不同,值越大,越先執(zhí)行;

  • select_type:SELECT的類型,常見的取值有SIMPLE(簡單表,即不使用表連接或者子查詢)、PRIMARY(主查詢,即外層的查詢)、UNION(UNION 中的第二個或者后面的查詢語句)、SUBOUERY(SELECT/WHERE之后包含了子查詢);

  • type:連接類型,性能由好到差的類型為:NULL、system、const、eq_ref、range、index、all;

  • possible_keys:可能用到的索引,一個或多個;

  • key:實際使用的索引,如果為NULL,則沒有使用索引;

  • Key_len:表示索引中使用的字節(jié)數,該值為索引字段最大可能長度,并非實際使用長度,在不損失精確性的前提下,長度越短越好;

  • rows:MySQL認為必要執(zhí)行查詢的行數,在innodb引擎的表中,是一個估計值,可能并不總是準確的;

  • filtered:返回結果的行數占需讀取行數的百分比,filtered的值越大越好;

好了,SQL性能分析就講到這里了。

公眾號:白巧克力LIN

該公眾號發(fā)布Python、數據庫、Linux、Flask、Django、自動化測試、Git、算法、前端、服務器等相關文章!

- END -

http://www.risenshineclean.com/news/45394.html

相關文章:

  • wordpress動靜分離cdn深圳網站設計專業(yè)樂云seo
  • 石家莊學做網站建設培訓學校百度關鍵詞優(yōu)化點擊 教程
  • 網站站內鏈接奉化首頁的關鍵詞優(yōu)化
  • 鄭州專門做網站的公司seo百度關鍵字優(yōu)化
  • 畢業(yè)設計代做淘寶好還是網站好免費注冊
  • 網絡公司+網站建設+小程序百度企業(yè)官網
  • 承接各類網站建設關鍵詞排名代發(fā)
  • 如何建立微網站詳細步驟廣東公司搜索seo哪家強
  • 佛山新網站制作怎么樣抖音優(yōu)化是什么意思
  • 安徽專業(yè)網站建設大全推薦寧波seo排名費用
  • 公司網站服務器托管東莞網站排名推廣
  • 企業(yè)網站哪里可以做江西seo推廣方案
  • 煙臺市委網站企業(yè)網站的推廣方法有哪些
  • 酒店為什么做網站軟件外包公司有前途嗎
  • 網站安全檢測軟件網絡銷售公司怎么運作
  • 鄭州易站通網站公司企業(yè)培訓的目的和意義
  • 專業(yè)網站制作團隊專業(yè)網站制作團隊友博國際個人中心登錄
  • 源碼站搜索引擎優(yōu)化的基本原理
  • 做眾籌網站需要什么條件以服務營銷出名的企業(yè)
  • 鄭州注冊公司網站視頻seo優(yōu)化教程
  • 德州極速網站建設百家號專業(yè)培訓心得體會
  • 覺 網站廣州seo優(yōu)化公司
  • wordpress取消置頂seo優(yōu)化公司排名
  • wap手機網站建設制作開發(fā)深圳競價排名網絡推廣
  • 廣州番禺建網站什么是seo關鍵詞優(yōu)化
  • 資源交易網站代碼百度經驗手機版
  • 星裕建設網站朝陽seo搜索引擎
  • 南昌公司做網站南京百度seo排名優(yōu)化
  • 網站建設可行分析性報告真正永久免費的建站系統有哪些
  • 千牛cdn wordpress長沙網站優(yōu)化推廣方案