日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

[MySQL优化案例]系列 — 典型性索引引发CPU负载飙升问题

發(fā)布時(shí)間:2025/3/21 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [MySQL优化案例]系列 — 典型性索引引发CPU负载飙升问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

收到一個(gè)mysql服務(wù)器負(fù)載告警,上去一看,load average都飆到280多了,用top一看,CPU跑到了336%,不過(guò)IO和內(nèi)存的負(fù)載并不高,根據(jù)經(jīng)驗(yàn),應(yīng)該又是一起索引引起的慘案了。

看下processlist以及slow query情況,發(fā)現(xiàn)有一個(gè)SQL經(jīng)常出現(xiàn),執(zhí)行計(jì)劃中的掃描記錄數(shù)看著還可以,單次執(zhí)行耗時(shí)為0.07s,還不算太大。乍一看,可能不是它引發(fā)的,但出現(xiàn)頻率實(shí)在太高,而且執(zhí)行計(jì)劃看起來(lái)也不夠完美:

mysql> explain SELECT count(1) FROM a , b WHERE a.id = b.video_id and b.state = 1 AND b.column_id = ’81’\G

*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: b
type: index_merge
possible_keys: columnid_videoid,column_id,state,video_time_stamp,idx_videoid
key: column_id,state
key_len: 4,4
ref: NULL
rows: 100
Extra: Using intersect(column_id,state); Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table: a
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: b.video_id
rows: 1
Extra: Using where; Using index

再看下該表的索引情況:

mysql> show index from b\G

*************************** 1. row ***************************
Table: b
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 167483
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
*************************** 2. row ***************************
Table: b
Non_unique: 1
Key_name: column_id
Seq_in_index: 1
Column_name: column_id
Collation: A
Cardinality: 8374
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
*************************** 3. row ***************************
Table: b
Non_unique: 1
Key_name: state
Seq_in_index: 2
Column_name: state
Collation: A
Cardinality: 5
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:

可以看到執(zhí)行計(jì)劃中,使用的是index merge,效率自然沒(méi)有用聯(lián)合索引(也有的叫做覆蓋索引)來(lái)的好了,而且?state?字段的基數(shù)(唯一性)太差,索引效果很差。刪掉兩個(gè)獨(dú)立索引,修改成聯(lián)合看看效果如何:

mysql> show index from b;

*************************** 1. row ***************************
Table:?b
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 128151
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
*************************** 2. row ***************************
Table:?b
Non_unique: 1
Key_name: idx_columnid_state
Seq_in_index: 1
Column_name: column_id
Collation: A
Cardinality: 3203
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
*************************** 3. row ***************************
Table:?b
Non_unique: 1
Key_name: idx_columnid_state
Seq_in_index: 2
Column_name: state
Collation: A
Cardinality: 3463
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:

mysql>?explain SELECT count(1) FROM a?, b?WHERE a.id = b.video_id and b.state = 1? AND b.column_id = ’81’ \G

*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table:?b
type: ref
possible_keys: columnid_videoid,idx_videoid,idx_columnid_state
key: columnid_videoid
key_len: 4
ref: const
rows: 199
Extra: Using where
*************************** 2. row ***************************
id: 1
select_type: SIMPLE
table:?a
type: eq_ref
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: b.video_id
rows: 1
Extra: Using where; Using index

?可以看到執(zhí)行計(jì)劃變成了只用到了?idx_columnid_state?索引,而且?ref?類型也變成了?const,SQL執(zhí)行耗時(shí)也從0.07s變成了0.00s,相應(yīng)的CPU負(fù)載也從336%突降到了12%不到。

總結(jié)下,從多次歷史經(jīng)驗(yàn)來(lái)看,如果CPU負(fù)載持續(xù)很高,但內(nèi)存和IO都還好的話,這種情況下,首先想到的一定是索引問(wèn)題,十有八九錯(cuò)不了。

--------------------------------------分割線--------------------------------------

知數(shù)堂 (http://zhishuedu.com)培訓(xùn)是由資深MySQL專家葉金榮、吳炳錫聯(lián)合推出的專業(yè)優(yōu)質(zhì)培訓(xùn)品牌,主要有MySQL DBA實(shí)戰(zhàn)優(yōu)化和Python運(yùn)維開(kāi)發(fā)課程,是業(yè)內(nèi)最有良心、最有品質(zhì)的培訓(xùn)課程。

本文出自 “老葉茶館” 博客,請(qǐng)務(wù)必保留此出處http://imysql.blog.51cto.com/1540006/1879883


總結(jié)

以上是生活随笔為你收集整理的[MySQL优化案例]系列 — 典型性索引引发CPU负载飙升问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩一区二区三区免费 | 国产一级片一区 | 激情网综合 | 国产免费av电影 | 偷偷色噜狠狠狠狠的777米奇 | 噜噜噜久久 | 日韩av网址大全 | ass精品国模裸体欣赏pics | 少妇毛片视频 | 国产高清不卡视频 | 久久久久一区 | www.av色 | 精品视频一二区 | 99九九久久 | 一级全黄裸体免费观看视频 | 久久免费av | 国产一区=区 | 欧美性猛交性大交 | 中文字幕第七页 | 中文字幕av久久 | 欧美人与物videos另类 | 一本一道久久 | 午夜av导航 | 中文字幕福利视频 | 国产一区二区三区四区五区六区 | 欧美日韩在线二区 | 小草av| 国产精品久久久不卡 | 亚洲午夜无码av毛片久久 | 成人黄色免费视频 | 男人天堂综合 | 夜夜春夜夜爽 | 日韩美女黄色片 | 伊人久久艹 | 久久国产香蕉 | 国产人妖在线观看 | 一级片麻豆 | 国产精品99久 | a级在线观看视频 | 可以看的av网站 | 午夜精品一区二区三区在线播放 | 三级欧美韩日大片在线看 | 欧美两根一起进3p做受视频 | 欧美xx孕妇 | 国产精品亚洲а∨天堂免在线 | 懂色av蜜臀av粉嫩av分享吧 | 欧美视频一区二区三区四区 | 国产黄片一区二区三区 | 在线手机av | 九七影院在线观看免费观看电视 | 美女高潮黄又色高清视频免费 | 88xx成人永久免费观看 | 天天干天天干天天 | 日韩黄色大片 | 日日夜夜伊人 | 超碰97观看 | 欧美视频一区二区三区在线观看 | 污片在线免费观看 | 韩国一级淫一片免费放 | 91精品视频网 | 国产香蕉精品 | 一本大道综合伊人精品热热 | 色窝网| 中文字幕视频在线观看 | 91日韩欧美| 亚洲一区二区三区四区不卡 | 亚洲综合一区在线观看 | 老司机午夜性大片 | 亚洲欧洲国产精品 | 性欧美极品 | 国产第九页 | 丝袜综合网 | wwwxxx黄色 | 日韩精品免费播放 | 97国产精东麻豆人妻电影 | 中文字幕一区二区久久人妻网站 | 成人羞羞国产免费动态 | 国产精品久久久久久久9999 | 日韩一区二区三区在线免费观看 | 91精品国产高清一区二区三密臀 | 久久久久亚洲精品国产 | 18视频网站在线观看 | 特黄色一级片 | av不卡一区二区三区 | 日韩每日更新 | 亚洲免费人成 | av免费网址在线观看 | 麻豆国产一区二区 | 99久久精品免费看国产交换 | 国产高清视频免费在线观看 | 黄色三级三级三级三级 | 精品人妻无码一区二区性色 | 狠狠操五月天 | 天天干夜夜 | 日韩在线第一区 | 特级西西444www| 麻豆成人91精品二区三区 | 国产精品资源站 | 中文字幕在线视频一区二区三区 |