国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

分析SQL執行時間及查詢執行計劃(附數據庫和一千萬數據)

數據庫 MySQL
我們干開發面試工作的時候,發現對數據庫的面試比重很大。說明對數據庫的知識掌握對我們程序員越來越重要了。接下來這篇文章我們來看看如何分析我們的sql執行效率。首先找到執行慢的sql,然后對執行慢的SQL進行分析。

[[360007]]

 我們干開發面試工作的時候,發現對數據庫的面試比重很大。說明對數據庫的知識掌握對我們程序員越來越重要了。接下來這篇文章我們來看看如何分析我們的sql執行效率。首先找到執行慢的sql,然后對執行慢的SQL進行分析。

一 準備數據

在分析之前是不是有這樣的困惑,我的數據量這么少。我如何分析SQL執行效率。不要慌,我們已準備了一千萬條數據。接下來看看如何將這一千萬條數據快速導入到數據庫中。

1. 創建表和導入一千萬條數據

表和數據地址(gitee) https://gitee.com/flowerAndJava/millions_data


2. 大批量數據導入數據

a 將數據庫導入服務器中(如果是windows系統,這步省略)

b 創建一個數據庫

  1. 創建數據庫(db2),表tb_sku 

c 命令行登錄數據庫

  1. mysql -u 用戶名 -p 密碼 ; 

d 切換到使用的數據庫

  1. use db2; 

e 使用命令

  1. load data local infile '/tmp/tb_sku1.sql' into table `tb_sku` fields terminated by ',' lines terminated by '\n'

對命令解釋: '/tmp/tb_sku1.sql' 數據的目錄(windows目錄例如:D:\life\tb_sku1.sql),tb_sku 要導入到的表。

 

 

 

注意

我們之前使用insert的sql將數據導入到數據庫中,但是往庫中導入上千萬數據會需要很久時間。

二 慢查詢分析(查找執行時間長的sql)

2.1 show profiles

show profiles是mysql提供可以用來分析當前會話中語句執行的資源消耗情 況。可以用來SQL的調優測量。

2.1.1 設置MySQL支持profile

1. 查看是否支持

  1. select @@have_profiling 

 

結果為YES,代表支持。

2. 查看profiling(profiling默認是關閉的)

  1. select @@profiling 

 

結果為0,代表沒有開啟

3. 開啟profiling

  1. set profiling=1;  

2.1.2 show profiles的使用

1. 輸入一系列查詢語句

  1. show databases; 
  2. use db01; 
  3. show tables; 
  4. select * from tb_ksu where id < 5; 
  5. select count(*) from tb_ksu; 

2. 查看沒一條SQL執行時間

  1. show profiles;    //如果執行沒有反應,查看profiling是否開啟了,命令為select @@profiling;  

 

查看沒每一條sql執行時間。

3. 查詢每一條sql每個階段執行時間

  1. select profile for query 6;   //6,代表Query_ID 

 

上圖解釋

  1. Sending data MySQL線程開始訪問數據行并把結果返回給客戶端,而不僅僅是 
  2. 返回給客戶端。在Sending data狀態下,MySQL線程往往進行大量的磁盤讀取 
  3. 操作,所以在查詢中最耗時的狀態。 

4. 查看線程在什么資源上耗費過高 (類型 all、cpu、block io 、context、switch、page faults)

  1. show profile cpu for query 7; 

 

上圖說明


2.2 慢查詢日志

慢查詢日志記錄了所有執行時間超過參數(long_query_time)設置值并且掃描 記錄數不少于min_examined_row_limit,的所有SQL日志。long_query_time默 認為10秒,最小為0,精度可以到微秒。

2.2.1 設置慢查詢日志

1. 修改配置文件(慢查詢日志默認關閉的) 修改配置文件命令 vi /etc/my.cnf 然后在配置文件最下方加入下面配置

  1. # 該參數用來控制慢查詢日志是否開啟,可取值:1和0,1代表開啟,0代表關閉 
  2. slow_query_log=1 
  3. #該參數用來指定慢查詢日志的文件名 
  4. slow_query_log_file=slow_query.log 
  5. #該選項用來配置查詢的時間限制, 超過這個時間將認為是慢查詢, 將進行日志記錄, 默認10s 
  6. long_query_time=10 

2. 重啟mysql服務

  1. service mysqld restart 

備注

如果執行命令報如下錯誤


請使用命令 systemctl restart mysqld.service

3. 查看慢查詢日志目錄

  1. cd /var/lib/mysql 

2.2.2 日志讀取

1. 查詢long_query_time的值

  1. show variables like 'long%'

 

2. 執行查詢操作

  1. select * from tb_sku where id = '100000030074'\G; 
  2. select * from tb_sku where name like '%HuaWei手機Meta87384 Pro%'\G; 

3. 查詢慢查詢日志

a 使用cat


b 如果慢查詢日志很多,借助借助于mysql自帶的mysqldumpslow工具,進行分類匯總

 

三 explain執行計劃、索引使用和SQL優化

通過以上步驟查詢到效率低的SQL語句后,可以通過EXPLAIN命令獲取Mysql如何執行Select語句信息,包含select語句執行過程中表如何連接和連接的順序。

3.1 執行explain命令,進行分析

  1. explain select * from tb_sku where id = '100000030074'

 

  1. explain select * from tb_sku where name like '%HuaWei 手機Meta87384 Pro%'

 

執行計劃字段解釋


3.2 對字段取值解釋

1. id

  1. A. id 相同表示加載表的順序是從上到下。 
  2. B. id 不同id值越大,優先級越高,越先被執行。 
  3. C. id 有相同,也有不同,同時存在。id相同的可以認為是一組,從上往下順序執行;在所有的組中,id的值越大,優先級越高,越先執行。 

2. select_type


3. type

 

結果由好到壞

  1. NULL > system > const > eq_ref > ref > fulltext > ref_or_null > index_merge >unique_subquery > index_subquery > range > index > ALL 
  2.  
  3. system > const > eq_ref > ref > range > index > ALL 

4. key

  1. A. possible_keys : 顯示可能應用在這張表的索引, 一個或多個。 
  2. B. key : 實際使用的索引, 如果為NULL, 則沒有使用索引。 
  3. C. key_len : 表示索引中使用的字節數, 該值為索引字段最大可能長度,并非實際使用長度,在不損失精確性的前提下, 長度越短越好 。 

5. rows

  1. 掃描行的數量。 

6. filtered

  1. 這個字段表示存儲引擎返回的數據在server層過濾后,剩下多少滿足查詢的記錄數量的比例。 

總結這篇文章可以分為三個點。

1 往數據庫導入一千萬數據,查看上面文章,按照步驟操作沒有任何問題。

2 查找慢查詢語句,查看慢查詢日志。按照命令執行就好

3 對sql執行進行分析,查看sql是否使用索引和執行效率。

 

責任編輯:姜華 來源: 花花和Java
相關推薦

2020-12-04 11:00:18

MySQL執行時間執行計劃

2011-08-18 09:19:19

SQL Server的SQL查詢優化

2011-09-14 17:03:17

數據庫執行計劃解析

2010-09-08 15:00:03

SQL語句執行

2024-12-17 14:52:46

2017-09-22 11:01:00

Oracle數據庫中直方圖

2015-04-22 14:17:45

SQL SERVERMSSQL SERVE緩沖區

2010-09-06 13:17:19

SQL Server語句

2022-12-13 08:36:42

D-SMARTOracle數據庫

2019-12-25 14:55:35

數據庫MySQLOracle

2024-09-12 15:16:14

2024-06-12 09:23:37

2018-07-18 15:13:56

MCU代碼時間

2021-02-24 11:44:35

語言計算函數嵌入式系統

2024-07-03 13:51:02

SQL毛刺數據庫

2011-03-16 11:17:30

DB2數據庫執行計劃

2010-11-04 14:35:38

DB2 sql文執行計

2009-11-18 17:05:47

捕獲Oracle SQ

2019-11-28 08:31:21

Oracle數據庫索引

2010-04-28 12:33:36

Oracle自定義函數
點贊
收藏

51CTO技術棧公眾號

国产91在线观看| 视频二区不卡| 午夜视频久久久久久| 欧美xxxx做受欧美| 亚洲美女精品一区| 亚洲视频电影在线| 美女一区二区在线观看| 日韩欧美在线视频日韩欧美在线视频| 成人av影视| 羞羞色国产精品| 色综合五月天| 亚洲一区二区在| 国产亚洲欧美aaaa| 成人高潮视频| 另类激情亚洲| 妓院一钑片免看黄大片| 精品国免费一区二区三区| 国产不卡在线| 欧美大秀在线观看| 成人高清av在线| 日本成人中文字幕在线| 精品无人区乱码1区2区3区在线| 欧美 日韩 国产 一区| 可以免费观看av毛片| 亚洲综合男人的天堂| 久久免费大视频| 69视频在线| 久久免费午夜影院| 福利h视频在线| 欧美大胆人体bbbb| 51精品国产| 国产 高清 精品 在线 a| 久久66热偷产精品| 美女免费免费看网站| 欧美日韩激情一区| 97人人澡人人爽91综合色| 国产伦精品一区二区三区视频孕妇| 国产精品影视网| 黄色免费看片| 亚洲精品久久久久中文字幕欢迎你 | 9999在线观看| 一区精品在线播放| 欧美videossex另类| 97视频在线播放| 蜜桃av噜噜一区| 91精品久久久久久9s密挑| 日韩久久免费电影| 色综合蜜月久久综合网| 亚洲熟妇无码另类久久久| 日本韩国欧美三级| 欧美三级午夜理伦三级在线观看| 一本一道久久久a久久久精品91| 亚洲一区在线观看免费观看电影高清| 老司机2019福利精品视频导航| 亚洲a一级视频| 国产精品素人一区二区| 夜鲁夜鲁夜鲁视频在线播放| 成人高清视频观看www| 2023国产一二三区日本精品2022| 欧美日韩在线看片| 国产va免费精品高清在线观看| 激情欧美一区二区三区在线观看| 你懂的视频在线播放| 韩国三级日本三级少妇99| 国产精品白丝jk白祙喷水网站| 日本中文在线| 成人黄色av播放免费| 亚洲丝袜另类动漫二区| 成人短视频软件网站大全app| 一区二区视频在线观看| 欧美日韩精品免费| 一区二区三区在线电影| 激情亚洲综合网| 欧美成人中文字幕| 豆国产96在线|亚洲| 精品众筹模特私拍视频| 精品一区二区三区日本| 欧美性猛交xxxx黑人猛交| 色婷婷久久久| 一区二区三区 日韩| 久久激情五月丁香伊人| 成人免费电影视频| 成人日韩在线| 国产日韩视频在线播放| 亚洲精品电影在线| 青青草国产成人av片免费| 黄色视屏免费在线观看| 成人区精品一区二区| 欧洲一区二区三区免费视频| 91欧美在线| 四虎影视2018在线播放alocalhost| 国产精品va在线播放| 亚洲欧美另类小说视频| 偷拍精品福利视频导航| xxxxx国产| 国产日韩欧美夫妻视频在线观看 | 色狠狠久久av五月综合|| 欧美高清dvd| 国产精品一区毛片| 超碰在线caoporn| 日韩精品不卡| 亚洲激情视频在线观看| 国产在线视频一区二区| 午夜av成人| 国产成人无码a区在线观看视频| 日韩中文字幕视频在线观看| 91免费在线播放| 加勒比视频一区| 91精品久久久久久9s密挑| 成人av资源在线播放| 欧美色图天堂网| 欧美a级一区二区| 久久不卡日韩美女| 激情五月色综合亚洲小说| 国产精品视频色| 欧美性受xxxx| 男男成人高潮片免费网站| 电影一区二区| 黄色国产网站在线观看| 91欧美精品成人综合在线观看| 欧美色综合影院| 日本中文字幕一区二区有限公司| 波多视频一区| 天堂在线资源视频| 国产精品一区二区三区免费视频 | 国产精品久久波多野结衣| 欧美丰满一区二区免费视频| 麻豆精品在线看| www.91精品| 探花国产精品| 欧美日本亚洲| 中文字幕欧美亚洲| 一区二区三区中文在线观看| 亚洲激情精品| 国产精品xxx| 中文字幕伊人| 久久影院理伦片| 少妇av一区二区三区| 亚洲免费在线看| 亚洲一区日韩| 99精品视频在线免费播放| 福利网址在线| 伊人久久大香线蕉午夜av| 97国产成人精品视频| 欧美在线小视频| 91丨九色丨国产丨porny| 中文无码久久精品| 日本成人片在线| 久草网在线视频| 黄色一级片网址| 日韩免费在线播放| 亚洲成人动漫在线播放| 国产精品国产自产拍在线| 久久av在线| 亚洲v天堂v手机在线| 免费毛片在线看片免费丝瓜视频 | 久久九九国产精品怡红院| 日韩欧美中文字幕在线观看 | 国产精品一区二区羞羞答答| 丁香五月网久久综合| 久久av.com| 欧美一区二区三区日韩| 国产精品成人一区二区艾草 | 欧美福利电影网| 中国色在线观看另类| 久久亚洲美女| 在线看成人短视频| 在线男人天堂| 少妇激情av一区二区| 任你操这里只有精品| 最新天堂资源在线资源| 久久国产精品 国产精品| 亚洲欧美日韩图片| 亚洲图片欧美色图| 国产传媒久久文化传媒| 久久国产精品亚洲人一区二区三区| 天堂网在线最新版www中文网| 一级毛片高清视频| 一级全黄肉体裸体全过程| 国产精品视频不卡| 日韩小视频在线| 欧美一区二区三区在线观看视频 | 欧美高清视频一二三区 | 久久99精品久久久水蜜桃| 久久久久久成人精品| 亚洲国产美女久久久久| 欧美日韩另类字幕中文| 国产色一区二区| 国产在线播精品第三| 欧美精品导航| 爽爽窝窝午夜精品一区二区| 日韩一区二区三区在线免费观看| 在线观看免费黄色| 免费成年网站| 日韩视频在线免费看| 丰满女人性猛交| 欧美精品一区二区视频| 91视频国产精品| 国产成人中文字幕| 91高清免费视频|