国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

Mysql性能優(yōu)化案例 - 覆蓋索引分享

2024-07-24 12:45:07
字體:
供稿:網(wǎng)友

場(chǎng)景

產(chǎn)品中有一張圖片表,數(shù)據(jù)量將近100萬條,有一條相關(guān)的查詢語句,由于執(zhí)行頻次較高,想針對(duì)此語句進(jìn)行優(yōu)化

表結(jié)構(gòu)很簡(jiǎn)單,主要字段:

復(fù)制代碼 代碼如下:

user_id 用戶ID
picname 圖片名稱
smallimg 小圖名稱

一個(gè)用戶會(huì)有多條圖片記錄

現(xiàn)在有一個(gè)根據(jù)user_id建立的索引:uid

查詢語句也很簡(jiǎn)單:取得某用戶的圖片集合

復(fù)制代碼 代碼如下:

select picname, smallimg
from pics where user_id = xxx;

優(yōu)化前

執(zhí)行查詢語句(為了查看真實(shí)執(zhí)行時(shí)間,強(qiáng)制不使用緩存)

復(fù)制代碼 代碼如下:

select SQL_NO_CACHE picname, smallimg
from pics where user_id=17853;

執(zhí)行了10次,平均耗時(shí)在40ms左右

使用explain進(jìn)行分析

復(fù)制代碼 代碼如下:

explain select SQL_NO_CACHE picname, smallimg
from pics where user_id=17853

使用了user_id的索引,并且是const常數(shù)查找,表示性能已經(jīng)很好了

優(yōu)化后

因?yàn)檫@個(gè)語句太簡(jiǎn)單,sql本身沒有什么優(yōu)化空間,就考慮了索引

修改索引結(jié)構(gòu),建立一個(gè)(user_id,picname,smallimg)的聯(lián)合索引:uid_pic

重新執(zhí)行10次,平均耗時(shí)降到了30ms左右

使用explain進(jìn)行分析

看到使用的索引變成了剛剛建立的聯(lián)合索引,并且Extra部分顯示使用了'Using Index'

總結(jié)

'Using Index'的意思是“覆蓋索引”,它是使上面sql性能提升的關(guān)鍵

一個(gè)包含查詢所需字段的索引稱為“覆蓋索引”

MySQL只需要通過索引就可以返回查詢所需要的數(shù)據(jù),而不必在查到索引之后進(jìn)行回表操作,減少IO,提高了效率

例如上面的sql,查詢條件是user_id,可以使用聯(lián)合索引,要查詢的字段是picname smallimg,這兩個(gè)字段也在聯(lián)合索引中,這就實(shí)現(xiàn)了“覆蓋索引”,可以根據(jù)這個(gè)聯(lián)合索引一次性完成查詢工作,所以提升了性能

您可能感興趣的文章:

MySQL性能全面優(yōu)化方法參考,從CPU,文件系統(tǒng)選擇到mysql.cnf參數(shù)優(yōu)化MySQL性能優(yōu)化的最佳20+條經(jīng)驗(yàn)mysql性能優(yōu)化工具--tuner-primer使用介紹數(shù)據(jù)庫Mysql性能優(yōu)化詳解MySQL性能參數(shù)詳解之Skip-External-Locking參數(shù)介紹MySQL性能參數(shù)詳解之Max_connect_errors 使用介紹MySQL性能瓶頸排查定位實(shí)例詳解Mysql性能優(yōu)化方案分享Mysql性能優(yōu)化案例研究-覆蓋索引和SQL_NO_CACHEmysql性能優(yōu)化之索引優(yōu)化MySQL性能監(jiān)控軟件Nagios的安裝及配置教程19個(gè)MySQL性能優(yōu)化要點(diǎn)解析詳解MySQL性能優(yōu)化(二)詳解MySQL性能優(yōu)化(一)10個(gè)MySQL性能調(diào)優(yōu)的方法淺談InnoDB隔離模式的使用對(duì)MySQL性能造成的影響使用FriendFeed來提升MySQL性能的方法my.cnf(my.ini)重要參數(shù)優(yōu)化配置說明
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 普陀区| 河津市| 嘉祥县| 加查县| 克拉玛依市| 卢氏县| 红原县| 玛纳斯县| 睢宁县| 临沭县| 博野县| 望谟县| 神农架林区| 夏津县| 芒康县| 徐闻县| 玉龙| 凤阳县| 会理县| 高阳县| 乐平市| 灌阳县| 甘泉县| 宁城县| 兰溪市| 成武县| 长沙县| 五华县| 宁乡县| 罗山县| 沈丘县| 隆尧县| 华坪县| 漯河市| 嘉荫县| 南江县| 石景山区| 镇雄县| 邳州市| 金平| 武定县|