最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2016年03月10日 12:48:15   投稿:mdxy-dxy  
這篇文章主要介紹了Mysql性能優(yōu)化案例 - 覆蓋索引分享,需要的朋友可以參考下

場(chǎng)景

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

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

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

user_id 用戶ID
picname 圖片名稱(chēng)
smallimg 小圖名稱(chēng)

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

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

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

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

select picname, smallimg
from pics where user_id = xxx;

優(yōu)化前

執(zhí)行查詢語(yǔ)句(為了查看真實(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è)語(yǔ)句太簡(jiǎn)單,sql本身沒(méi)有什么優(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è)包含查詢所需字段的索引稱(chēng)為“覆蓋索引”

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

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

相關(guān)文章

  • MySQL中insert語(yǔ)句的使用與優(yōu)化教程

    MySQL中insert語(yǔ)句的使用與優(yōu)化教程

    這篇文章主要介紹了MySQL中insert語(yǔ)句的使用與優(yōu)化教程,使用insert語(yǔ)句插入數(shù)據(jù)是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-03-03
  • MySQL Shell的介紹以及安裝

    MySQL Shell的介紹以及安裝

    這篇文章主要介紹了MySQL Shell的介紹以及安裝,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-04-04
  • MySQL實(shí)現(xiàn)查詢數(shù)據(jù)庫(kù)表記錄數(shù)

    MySQL實(shí)現(xiàn)查詢數(shù)據(jù)庫(kù)表記錄數(shù)

    這篇文章主要介紹了MySQL實(shí)現(xiàn)查詢數(shù)據(jù)庫(kù)表記錄數(shù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • MySql死鎖排查的問(wèn)題解決

    MySql死鎖排查的問(wèn)題解決

    本文主要介紹了MySQL死鎖的排查方法和解決方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • MySQL時(shí)間戳與日期格式的相互轉(zhuǎn)換

    MySQL時(shí)間戳與日期格式的相互轉(zhuǎn)換

    在MySQL數(shù)據(jù)庫(kù)中,時(shí)間戳和日期格式是常用的數(shù)據(jù)類(lèi)型,在MySQL中,我們可以使用函數(shù)還相互轉(zhuǎn)換時(shí)間戳和日期格式,下面我將詳細(xì)的給大家介紹如何進(jìn)行轉(zhuǎn)換,并提供相應(yīng)的代碼示例,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-01-01
  • Centos 5.2下安裝多個(gè)mysql數(shù)據(jù)庫(kù)配置詳解

    Centos 5.2下安裝多個(gè)mysql數(shù)據(jù)庫(kù)配置詳解

    在實(shí)際應(yīng)用中,有時(shí)候,我們需要在同一臺(tái)服務(wù)器上安裝兩個(gè)甚至多個(gè)mysql數(shù)據(jù)庫(kù),那么,如何來(lái)操作呢,今天我們就來(lái)探討下這個(gè)問(wèn)題
    2014-07-07
  • Windows10下mysql 8.0.12 解壓版安裝圖文教程

    Windows10下mysql 8.0.12 解壓版安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了Windows10下mysql 8.0.12 解壓版安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • SQL 聚合、分組和排序

    SQL 聚合、分組和排序

    這篇文章主要介紹了SQL 聚合、分組和排序,文章圍繞SQL 聚合、分組、排序的相關(guān)資料展開(kāi)具體內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • MySQL?視圖、函數(shù)和存儲(chǔ)過(guò)程詳解

    MySQL?視圖、函數(shù)和存儲(chǔ)過(guò)程詳解

    視圖、函數(shù)和存儲(chǔ)過(guò)程都是 MySQL 中非常重要的數(shù)據(jù)庫(kù)對(duì)象,它們可以提高數(shù)據(jù)庫(kù)的效率和可重用性,使開(kāi)發(fā)人員更加高效地處理數(shù)據(jù),這篇文章主要介紹了MySQL?視圖、函數(shù)和存儲(chǔ)過(guò)程,需要的朋友可以參考下
    2023-04-04
  • 使用MySQL進(jìn)行千萬(wàn)級(jí)別數(shù)據(jù)查詢的技巧分享

    使用MySQL進(jìn)行千萬(wàn)級(jí)別數(shù)據(jù)查詢的技巧分享

    這篇文章主要介紹了如何使用MySQL進(jìn)行千萬(wàn)級(jí)別數(shù)據(jù)查詢的技巧,文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03

最新評(píng)論

墨脱县| 墨江| 和静县| 石首市| 长岛县| 石棉县| 吴堡县| 谷城县| 玉屏| 吐鲁番市| 尉氏县| 徐闻县| 察雅县| 扬州市| 汶上县| 黑水县| 井冈山市| 北票市| 淳安县| 靖安县| 婺源县| 怀仁县| 巧家县| 共和县| 泸定县| 沭阳县| 丹巴县| 阜城县| 巴楚县| 惠水县| 朔州市| 武鸣县| 岱山县| 石棉县| 手游| 海城市| 南川市| 漳州市| 麻江县| 司法| 洞头县|