欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

場景

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

表結構很簡單,主要字段:

復制代碼 代碼如下:

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

一個用戶會有多條圖片記錄

現在有一個根據user_id建立的索引:uid

查詢語句也很簡單:取得某用戶的圖片集合

復制代碼 代碼如下:

select picname, smallimg
from pics where user_id = xxx;

優(yōu)化前

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

復制代碼 代碼如下:

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

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

使用explain進行分析

復制代碼 代碼如下:

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

使用了user_id的索引,并且是const常數查找,表示性能已經很好了

優(yōu)化后

因為這個語句太簡單,sql本身沒有什么優(yōu)化空間,就考慮了索引

修改索引結構,建立一個(user_id,picname,smallimg)的聯合索引:uid_pic

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

使用explain進行分析

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

總結

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

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

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

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

相關文章

  • mysql unsigned 用法及相減出現補數溢出解決方法

    mysql unsigned 用法及相減出現補數溢出解決方法

    unsigned表示無符號的意思,也就是非負數,只用于整型并且unsigned 是MYSQL自定義的類型,非標準SQL。用途1是紅苕說的起到約束數值的作用,2是可以增加數值范圍(相當于把負數那部分加到正數上)。不過少用,不方便移植
    2012-04-04
  • CentOS安裝mysql5.7 及簡單配置教程詳解

    CentOS安裝mysql5.7 及簡單配置教程詳解

    這篇文章主要介紹了CentOS安裝mysql5.7 及簡單配置教程詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • SQL查詢語句執(zhí)行的過程

    SQL查詢語句執(zhí)行的過程

    這篇文章主要介紹了SQL查詢語句執(zhí)行的過程,文章圍繞主題展開SQL查詢語句的相關資料,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • SQL優(yōu)化教程之in與range查詢

    SQL優(yōu)化教程之in與range查詢

    這篇文章主要介紹了給大家介紹了SQL優(yōu)化之in與range查詢的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • SQL刪除重復數據的實例教程

    SQL刪除重復數據的實例教程

    在使用SQL提數的時候,常會遇到表內有重復值的時候,下面這篇文章主要給大家介紹了關于SQL刪除重復數據的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • 通過緩存+SQL修改優(yōu)雅地優(yōu)化慢查詢

    通過緩存+SQL修改優(yōu)雅地優(yōu)化慢查詢

    本文通過介紹緩存的基本原理和SQL語句的優(yōu)化手段,以及實際案例的分析,為讀者提供了一種簡單而有效的優(yōu)化思路。讀者可以通過本文了解到如何在不修改程序代碼的情況下,通過巧妙地運用緩存和SQL優(yōu)化技巧,提高程序的性能和響應速度。
    2023-04-04
  • MySQL 備份還原數據庫批處理

    MySQL 備份還原數據庫批處理

    在日常工作中,我們往往需要對MySQL數據庫進行備份,有時可以通過拷貝整個文件,有時通過備份整個庫還有的時候我們就只需要備份某個表。
    2009-07-07
  • Windows下mysql5.7.21安裝詳細教程

    Windows下mysql5.7.21安裝詳細教程

    這篇文章主要為大家詳細介紹了Windows下mysql5.7.21安裝詳細教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • mysql 獲取規(guī)定時間段內的統計數據

    mysql 獲取規(guī)定時間段內的統計數據

    這篇文章主要介紹了mysql 獲取規(guī)定時間段內的統計數據的相關資料,需要的朋友可以參考下
    2017-05-05
  • Linux下MySQL卸載和安裝圖文教程

    Linux下MySQL卸載和安裝圖文教程

    這篇文章主要為大家詳細介紹了Linux下MySQL卸載和安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評論