精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL limit導致的執行計劃差異

數據庫 MySQL
今天收到一個業務的報警,提示慢日志比較頻繁,登上環境查看,發現SQL是一條看起來很簡單的語句,環境在MySQL 5.7.16版本下,慢日志里面執行時間顯示是近1分鐘,我在從庫上面執行了一下,發現優化空間確實很大。

[[342082]]

今天收到一個業務的報警,提示慢日志比較頻繁,登上環境查看,發現SQL是一條看起來很簡單的語句,環境在MySQL 5.7.16版本下,慢日志里面執行時間顯示是近1分鐘,我在從庫上面執行了一下,發現優化空間確實很大:

  1. select OrgId 
  2. from `testcomm`.apply_join_org 
  3. where IfDel=1 and ApplyStatus=1 and UserId = 12345678 ORDER BY CreateTime desc LIMIT 1; 
  4. Empty set (48.71 sec) 

執行計劃如下:

  1. explain select OrgId 
  2.     -> from `testcomm`.apply_join_org 
  3.     ->  where IfDel=1 and ApplyStatus=1 and UserId = 12345678 ORDER BY CreateTime desc LIMIT 1\G 
  4. *************************** 1. row *************************** 
  5.            id: 1 
  6.   select_type: SIMPLE 
  7.         table: apply_join_org 
  8.    partitions: NULL 
  9.          type: index 
  10. possible_keys: IndexRTUser 
  11.           key: IndexCreateTime 
  12.       key_len: 5 
  13.           ref: NULL 
  14.          rows: 4332 
  15.      filtered: 0.00 
  16.         Extra: Using where 
  17. 1 row in set, 1 warning (0.00 sec) 

到了這個時候,不上表結構有些草率了,結構有所刪減。

  1. CREATE TABLE `apply_join_org` ( 
  2.   `ApplyJoinId` int(11) NOT NULL AUTO_INCREMENT, 
  3.   `RTId` int(11) DEFAULT NULL
  4.   `UserId` int(11) NOT NULL
  5.   `OrgId` int(11) NOT NULL
  6.   `ApplyMsg` varchar(100) DEFAULT NULL
  7.   `CreateTime` datetime NOT NULL
  8.   `ReplyMemId` int(11) DEFAULT '0'
  9.   `ReplyTime` datetime NOT NULL
  10.   `ApplyStatus` tinyint(4) DEFAULT '1' COMMENT '0拒絕1申請2同意'
  11.   `IfDel` tinyint(4) DEFAULT '1'
  12.   `UpdateTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  13.   `RP` int(11) DEFAULT '0' COMMENT 'RP值'
  14.   `sex` tinyint(1) DEFAULT NULL
  15.   `IfLeaguer` tinyint(1) NOT NULL DEFAULT '0'
  16.   PRIMARY KEY (`ApplyJoinId`), 
  17.   KEY `IndexOrgIdStatus` (`OrgId`,`ApplyStatus`,`IfDel`), 
  18.   KEY `IndexRTUser` (`UserId`), 
  19.   KEY `IndexCreateTime` (`CreateTime`) USING BTREE 
  20. ) ENGINE=InnoDB AUTO_INCREMENT=22495957 DEFAULT CHARSET=utf8  
  21. 1 row in set (0.00 sec) 

此外涉及的這張表的數據量有2000萬左右,從目前的執行效率來看,無疑于走了一個全表掃描。

其實這個問題到了這個還是比較好理解的。從語句的表現,結合表結構,我們可以感覺到: 整個SQL的執行過程中,原本是基于字段UserId,沒想到卻因為order by中的CreateTime,導致索引選擇錯誤,執行代價差異很大。

所以到了這里,我們如何來定性這個問題:

1)是因為order by導致的嗎?

2)是因為時間字段的排序導致的嗎?

3)是因為limit操作導致的嗎?

4)是因為userid本身的數據過濾效果差導致的嗎?

對于這些疑問,我們可以很快通過幾條對比SQL就能夠快速驗證。

通過如下的SQL可以看到order by不是最主要的原因

  1. select OrgId 
  2.     ->      from `testcomm`.apply_join_org 
  3.     ->       where IfDel=1 and ApplyStatus=1 and UserId = 12345678 ORDER BY CreateTime ; 
  4. Empty set (0.01 sec 

order by排序也不是最主要的原因

  1. select OrgId 
  2.     -> from `testcomm`.apply_join_org 
  3.     ->  where IfDel=1 and ApplyStatus=1 and UserId = 12345678 ORDER BY CreateTime desc ; 
  4. Empty set (0.01 sec) 

order by排序+limit 10也不是最主要的原因

  1. select OrgId 
  2. from `testcomm`.apply_join_org 
  3. where IfDel=1 and ApplyStatus=1 and UserId = 12345678 ORDER BY CreateTime desc LIMIT 10; 
  4. Empty set (0.01 sec) 

order by 排序+limit 2也不是最主要的原因

  1. select OrgId 
  2.     -> from `testcomm`.apply_join_org 
  3.     ->  where IfDel=1 and ApplyStatus=1 and UserId = 12345678 ORDER BY CreateTime desc LIMIT 2; 
  4. Empty set (0.01 sec) 

而經過這些對比,主要加入了limit 1,索引選擇情況就會發生變化。我們抓取一條limit 2的執行計劃來看看。可以明顯看到type為ref,此外ref部分差異很大(const)。

  1. >explain select OrgId  from `testcomm`.apply_join_org   where IfDel=1 and ApplyStatus=1 and UserId = 12345678 ORDER BY CreateTime desc LIMIT 2\G 
  2. *************************** 1. row *************************** 
  3.            id: 1 
  4.   select_type: SIMPLE 
  5.         table: apply_join_org 
  6.    partitions: NULL 
  7.          type: ref 
  8. possible_keys: IndexRTUser 
  9.           key: IndexRTUser 
  10.       key_len: 4 
  11.           ref: const 
  12.          rows: 4854 
  13.      filtered: 1.00 
  14.         Extra: Using index condition; Using where; Using filesort 
  15. 1 row in set, 1 warning (0.00 sec) 

如果想得到更進一步的信息,可以使用如下的方式:

  1. SET optimizer_trace="enabled=on" 
  2. SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE\G 

查看

reconsidering_access_paths_for_index_ordering部分的信息會是關鍵所在。

"index_provides_order": true,

"order_direction": "desc",

而對于這個問題的分析,主要還是在于對于cost的評估方式,顯然在目前的測試中,增加了額外的order by排序操作,導致了代價會略微高一些,而在優化器中在評估中,顯然這部分是缺失了一些信息導致判斷失誤。

有如下幾種方式可以修復:

1)補充完整的復合索引,userid和CreateTime能夠做到互補,該方案已經在同構環境中做了完整的模擬測試,能夠達到預期

  1. alter table  `testcomm`.apply_join_org drop key IndexRTUser; 
  2. alter table  `testcomm`.apply_join_org add  key `IndexRTUser2`(UserId,CreateTime); 

2)使用force index的hint方式來強制索引,當然對于業務具有一定的侵入性

3)調整SQL邏輯模式,確實是否可以使用其他的方式來代替這種limit 1的使用模式。

 

而從長計議,其實整個評估中的優化器還是比較薄弱的,對于索引選擇中的判斷依據,如果有了直方圖等輔助信息,整個過程會更加如虎添翼,這塊的內容,準備在8.0中進行一些模擬測試,稍后奉上測試結果。

本文轉載自微信公眾號「 楊建榮的學習筆記」,可以通過以下二維碼關注。轉載本文請聯系 楊建榮的學習筆記公眾號。

 

責任編輯:武曉燕 來源: 楊建榮的學習筆記
相關推薦

2023-09-21 10:55:51

MysqlSQL語句

2021-05-28 10:46:36

MySQL執行計劃

2022-08-08 08:03:44

MySQL數據庫CBO

2024-09-12 15:16:14

2011-09-14 17:03:17

數據庫執行計劃解析

2022-02-15 07:36:21

SQLEXPLAIN數據庫

2021-04-24 12:01:08

MySQL數據庫Mysql執行計劃

2021-03-17 09:35:51

MySQL數據庫explain

2015-04-22 14:17:45

SQL SERVERMSSQL SERVE緩沖區

2009-11-10 16:00:05

Oracle執行計劃

2010-04-16 09:27:18

Ocacle執行計劃

2022-08-15 15:09:26

SQL數據庫MySQL

2017-11-15 08:50:59

數據庫MySQL

2018-02-27 14:00:35

數據庫MySQL統計信息

2009-11-13 16:28:02

Oracle生成執行計

2021-02-20 08:40:19

HiveExplain底層

2009-11-18 17:05:47

捕獲Oracle SQ

2021-09-07 10:43:25

EverDB分布式執行

2011-08-18 14:10:51

Oracle不走索引

2022-12-13 08:36:42

D-SMARTOracle數據庫
點贊
收藏

51CTO技術棧公眾號

九色91视频| 久久久久久午夜| 日本三级黄色网址| 大地资源网3页在线观看| 国产精品538一区二区在线| 欧美高清自拍一区| 亚洲午夜福利在线观看| 欧美综合影院| 狠狠久久五月精品中文字幕| 女同一区二区| av中文字幕免费在线观看| 在线日韩视频| 日韩在线视频二区| 你懂得在线视频| 国产亚洲精品精品国产亚洲综合| 亚洲精品乱码久久久久| 欧美一区二区三区电影在线观看| 国产男男gay体育生白袜| 国产欧美日韩一区二区三区在线| 深夜福利一区二区| 免费看黄色aaaaaa 片| 亚洲18在线| 日韩欧美国产骚| 男人草女人视频| 国产精品四虎| 91在线看国产| av成人综合网| 国产精品久久久久毛片| 日韩福利视频导航| 91av视频在线| 日韩av在线电影| 最新精品国产| 日韩在线视频免费观看| 中文字幕av网址| 999在线精品| 欧美一级高清大全免费观看| 日韩精品久久久久久久| 国产天堂在线| 不卡的av电影| 92福利视频午夜1000合集在线观看| 九九热精品视频在线| 欧美1区免费| 久久久国产精品x99av | 国产wwwwxxxx| 你懂的视频欧美| 日韩成人免费视频| 免费看黄色片的网站| 日韩一区二区三区精品| 欧美女孩性生活视频| 青青草精品视频在线观看| 午夜激情电影在线播放| 午夜视频一区二区三区| 成人黄色av片| 国产精选在线| 亚洲444eee在线观看| 岛国大片在线播放| а√天堂中文在线资源8| 亚洲最大成人网4388xx| 国产情侣第一页| 午夜成年人在线免费视频| 亚洲乱码国产乱码精品精的特点 | 精品1卡二卡三卡四卡老狼| 欧美成人一级| 日韩久久久精品| 高清中文字幕mv的电影| 国产福利一区二区精品秒拍| 日韩成人中文字幕| 免费在线观看你懂的| 国产成人1区| 色妞久久福利网| 紧身裙女教师波多野结衣| 99热在线成人| 欧美日韩国产成人| 日韩精品一区二区av| 蜜乳av另类精品一区二区| 欧美亚洲在线观看| 自拍偷拍福利视频| 国产一区 二区 三区一级| 成人欧美一区二区| 五月天婷婷在线观看| 99精品视频免费在线观看| 日本黄网免费一区二区精品| 日本最新在线视频| 亚洲国产成人av| 人妻无码视频一区二区三区| 日韩电影免费观看高清完整版在线观看| 欧美日韩专区在线| 精品人妻人人做人人爽夜夜爽| 老司机成人在线| 国产亚洲欧洲在线| 青青草国产在线观看| 一区二区三区成人精品| 国产精品美女在线| 亚洲国产精品久久人人爱潘金莲| 91在线看国产| 免费久久久久久| sis001亚洲原创区| 欧美日韩国产综合草草| 国产亚洲精品成人a| 精品国产中文字幕第一页| 久久伊人91精品综合网站| 久久不卡免费视频| 国产一区二区三区四区五区美女| 久久免费看av| 羞羞视频在线免费国产| 欧美综合天天夜夜久久| 国产chinesehd精品露脸| 国产日产精品一区二区三区四区的观看方式 | 久久久久成人精品无码中文字幕| 欧美在线观看视频一区| 高清视频欧美一级| 国产精品高潮呻吟AV无码| 99re在线视频这里只有精品| 自拍偷拍一区二区三区| 91精品xxx在线观看| 欧美精品一区二区三区一线天视频| 少妇视频在线播放| 亚洲综合欧美| 黄色91av| 欧洲在线视频| 88在线观看91蜜桃国自产| 亚洲自拍偷拍图| 国产视频一区欧美| 国产精品国产精品| 国产精品一卡二卡三卡| 欧美视频一区在线观看| 日本少妇色视频| 亚洲欧洲日本mm| 97久久天天综合色天天综合色hd| 香蕉视频在线播放| 在线观看91精品国产入口| 你懂得在线视频| 亚洲乱码久久| 国产精品一区视频网站| 制服丝袜在线播放| 6080午夜不卡| 成人高潮免费视频| 久久99精品国产.久久久久久 | 婷婷综合激情| 国产精品一区二区三| 国模吧精品人体gogo| 欧美性极品少妇精品网站| 人妻体内射精一区二区三区| 欧美日韩国产在线一区| 亚洲精品欧美极品| 精品国产丝袜高跟鞋| 欧美日本在线播放| 肉色超薄丝袜脚交69xx图片| 美洲天堂一区二卡三卡四卡视频 | 亚洲一区二区日韩| 成人国产精品一区| 免费黄色网址在线观看| 91.com视频| 久久久全国免费视频| 国产白丝精品91爽爽久久| 老司机午夜网站| 免费看一区二区三区| 欧美猛男性生活免费| 99国产精品99| 亚洲一卡二卡三卡四卡| 尤物网站在线观看| 亚洲免费大片| 免费成人看片网址| 国产成人福利夜色影视| 精品国产欧美一区二区五十路| 国产免费不卡av| 亚洲一区影音先锋| 中出视频在线观看| 久久久久久网| 中文字幕免费在线不卡| 免费看日产一区二区三区| 午夜精品久久久久久久男人的天堂 | 欧美性生交大片| 国产精品夜夜嗨| 久久国产午夜精品理论片最新版本| 人人精品视频| 国产精品视频99| 中文字幕在线观看网站| 亚洲精品ady| 亚洲字幕av一区二区三区四区| 亚洲视频图片小说| 精品国产av色一区二区深夜久久| 日韩精品亚洲专区| 国产对白在线播放| 精品精品国产三级a∨在线| 国产mv久久久| 182tv在线播放| 亚洲美腿欧美激情另类| 夜夜嗨aⅴ一区二区三区| 一区二区三区四区在线免费观看| 中出视频在线观看| 久久99久久精品| 日本韩国欧美在线观看| 日韩精品一卡| 国产精品国模大尺度私拍| 日韩一区精品| 韩剧1988在线观看免费完整版| 国产69精品久久app免费版| 日韩欧美国产一二三区| 日本a级c片免费看三区| 一区二区三区在线影院| 中国毛片在线观看| 国产精品1区2区3区在线观看| 成人久久久久久久久| 一区二区电影| 清纯唯美一区二区三区| 伊人精品综合| 国产精品视频99| 小早川怜子影音先锋在线观看| 久久久av免费| 国产1区2区3区在线| 精品久久久久久久久久久久包黑料 | 国产日韩欧美| 天天操天天干天天玩| 欧美日韩黑人| 免费h精品视频在线播放| 成人av影音| 亚洲sss综合天堂久久| 国产三级一区| 国产精品激情自拍| 午夜伦理福利在线| 午夜精品蜜臀一区二区三区免费 | 国产中文字幕一区二区三区| 国产一区二区免费电影| 1313精品午夜理伦电影| 成人激情视频网| 国产69精品久久久久9999人| 日韩av片永久免费网站| 国产777精品精品热热热一区二区| 久久中文字幕视频| 日本天堂在线观看| 中文字幕免费精品一区高清| 免费福利在线观看| 日韩精品高清在线| 亚洲AV成人无码一二三区在线| 在线精品视频小说1| 91av在线免费视频| 天天色图综合网| 日本少妇激情视频| 亚洲成人精品在线观看| 国产午夜久久久| 亚洲综合色婷婷| 九九视频免费观看| 一个色妞综合视频在线观看| 久久久久久久久久久久久久久久久| 日韩理论片网站| 亚洲AV成人无码精电影在线| 日韩一区在线播放| 艳妇荡乳欲伦69影片| 亚洲欧美二区三区| www.av视频| 亚洲国产cao| 国产在线观看黄色| 色香蕉久久蜜桃| 国产精品51麻豆cm传媒| 欧美羞羞免费网站| 一本大道伊人av久久综合| 欧美美女bb生活片| av网站在线免费看| 日韩女优视频免费观看| 亚洲国产精品视频在线| 精品电影一区二区三区 | 成人av资源网站| 亚洲中文字幕无码av| 久久亚洲一级片| 欧美午夜激情影院| 亚洲色图欧美在线| 久久影院一区二区| 精品久久久免费| 波多野结衣在线观看视频| 欧美精品在线观看一区二区| av一级黄色片| 亚洲精品一区二区在线| av在线免费一区| 欧美大秀在线观看| 黄在线观看免费网站ktv| 国产精品久久久久久久久免费看| 久久久久久久性潮| 成人蜜桃视频| 欧美热在线视频精品999| 伊人天天久久大香线蕉av色| 欧美成人tv| 国内外成人免费激情视频| 久久精品国产亚洲aⅴ| 精品人妻无码中文字幕18禁| 久久久久一区二区三区四区| 日本在线一级片| 精品欧美aⅴ在线网站| 国产偷人爽久久久久久老妇app | 成年人性生活视频| 91蝌蚪国产九色| 最新av电影网站| 精品欧美aⅴ在线网站| 91福利免费视频| 日韩黄色在线免费观看| 欧美日韩在线看片| 91大神福利视频在线| 高清国产一区二区三区四区五区| 国产欧美在线一区二区| 日韩夫妻性生活xx| 色欲色香天天天综合网www| 毛片不卡一区二区| 一女三黑人理论片在线| 亚洲免费观看高清完整 | 91精品国产麻豆| 九色视频在线播放| 国产+人+亚洲| 99精品国产九九国产精品| 欧美日韩视频在线一区二区观看视频| 女人香蕉久久**毛片精品| 无人在线观看的免费高清视频| 岛国一区二区在线观看| 国产黄a三级三级| 色94色欧美sute亚洲13| 欧美熟女一区二区| 欧美乱大交xxxxx| 91麻豆精品国产综合久久久| 日韩高清专区| 国产偷自视频区视频一区二区| 少妇丰满尤物大尺度写真| 国产精品嫩草99a| 婷婷激情五月综合| 日韩av影院在线观看| 黄网在线免费看| 99国产视频| 中文字幕一区二区三区久久网站| 亚洲视频一二三四| 国产日产欧产精品推荐色| 久久精品一二区| 亚洲精品www| 日本不卡网站| 国产专区一区二区| 99精品欧美| 91玉足脚交白嫩脚丫| 香蕉乱码成人久久天堂爱免费| 精品国产av一区二区| 日韩一区二区福利| 电影在线观看一区二区| 色狠狠久久av五月综合| 日韩精品免费视频人成| 欧美波霸videosex极品| 在线观看国产91| 日韩黄色影院| 成人欧美一区二区三区在线 | 国产主播在线看| 91亚洲精品一区二区乱码| 日韩精品一区二区三区国语自制| 亚洲成人精品久久| 97人人在线视频| 久久久一本精品99久久精品66| 国产精品一页| 精品人伦一区二区| 7777女厕盗摄久久久| 国产黄色免费在线观看| 国产精品高潮视频| 97精品在线| 五月天国产视频| 亚洲国产精品一区二区www在线| 可以免费看毛片的网站| 97超级碰在线看视频免费在线看| 啪啪激情综合网| 久久久精品三级| 亚洲欧美怡红院| 欧美熟妇另类久久久久久不卡| 45www国产精品网站| 欧美三级情趣内衣| 伊人网在线综合| 亚洲一区二区三区中文字幕| 亚洲 欧美 自拍偷拍| 国产精品久久久久久久久久 | 欧美成人免费大片| 国产精品乱战久久久| 无码人妻h动漫| 国产精品久久久久影院老司| 精品久久久中文字幕人妻| 久久久久久久av| 国产一区二区观看| 一起草最新网址| 黑人巨大精品欧美一区二区| 91精品大全| 国产自产在线视频一区| 毛片一区二区三区| 日本一级一片免费视频| 尤物九九久久国产精品的分类| 日韩成人在线观看视频| 久久久999视频| 亚洲美女精品一区| 久草在线网址| wwwxx欧美| 日韩高清在线电影| 国产精品99无码一区二区| 综合国产在线视频| 精品三级av| 天堂中文av在线| 欧美视频一区二区三区…| 国产美女福利在线| 日本一区高清不卡| 成人午夜在线免费| 一级黄色片在线播放| 91精品国产色综合久久不卡98口|