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

MySQL回表的性能傷害程度有多大

 更新時間:2022年02月22日 16:38:46   作者:公眾號JavaEdge  
這篇文章主要介紹了MySQL回表的性能傷害程度有多大?下面我們就帶著疑問進入下面文章了解詳細內容,需要的小伙伴可以參考一下,希望對你的學習有所幫助

1 回表的性能消耗

無論單列索引 還是 聯合索引,一個索引就對應一個獨立的B+索引樹,索引樹節(jié)點僅包含:

  • 索引里的字段值
  • 主鍵值

即使根據索引樹按條件找到所需數據,也僅是索引里的幾個字段的值和主鍵值,萬一你搞個select *,那就還得其他字段,就需回表,根據主鍵到聚簇索引里找,聚簇索引的葉節(jié)點是數據頁,找到數據頁才能把一行數據所有字段值讀出來。
所以類似

select * from table order by xx1,xx2,xx3

得從聯合索引的索引樹里按序取出所有數據,接著對每條數據都走一個主鍵的聚簇索引查找,性能不高。
有時MySQL執(zhí)行引擎可能認為,你要是類似

select * from table order by xx1,xx2,xx3

相當于得把聯合索引和聚簇索引,兩個索引的所有數據都掃描一遍,那還不如不走聯合索引,直接全表掃描得了,這樣就只需掃描一個主鍵索引。

但若形如:

select * from table order by xx1,xx2,xx3 limit 10

那執(zhí)行引擎就知道你先掃描聯合索引的索引樹,拿到10條數據,接著對10條數據在聚簇索引里查找10次即可,那就還是會走聯合索引。

2 覆蓋索引

覆蓋索引不是一種索引,只是一種基于索引查詢的方式,即針對類似

select xx1,xx2,xx3 from table order by xx1,xx2,xx3

僅需聯合索引里的幾個字段的值,那就只需掃描聯合索引的索引樹,無需回表找其它字段,這種查詢方式就是覆蓋索引。
所以當你使用聯合索引時,注意是否可能會導致大量回表到聚簇索引,若回表聚簇索引的次數太多,可能就直接給你做成全表掃描而不走聯合索引了。
盡可能還是在SQL里指定你僅需要的字段,而不要暴力select *,最好直接走覆蓋索引。
即使無可避免地要回表,你也盡可能用limitwhere限定一下回表的次數,就從聯合索引里篩選少數數據,再回表,這樣性能好一點。

到此這篇關于MySQL回表的性能傷害程度有多大的文章就介紹到這了,更多相關MySQL回表的性能傷害內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決MySQL數據庫意外崩潰導致表數據文件損壞無法啟動的問題

    解決MySQL數據庫意外崩潰導致表數據文件損壞無法啟動的問題

    這篇文章主要介紹了MySQL數據庫意外崩潰導致表數據文件損壞無法啟動的問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • mysql 讀寫分離(基礎篇)

    mysql 讀寫分離(基礎篇)

    MySQL Proxy最強大的一項功能是實現“讀寫分離(Read/Write Splitting)”。
    2009-04-04
  • mysql優(yōu)化之like和=性能詳析

    mysql優(yōu)化之like和=性能詳析

    這篇文章主要給大家介紹了關于mysql優(yōu)化之like和=性能的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 全面解析MySQL常見問題的排查與解決方法

    全面解析MySQL常見問題的排查與解決方法

    MySQL 是一款常用的關系型數據庫管理系統,廣泛應用于各類應用開發(fā)和數據管理場景,然而,在實際使用中,MySQL 有時會遇到啟動失敗、服務中斷或性能問題等情況,所以本文給大家介紹了MySQL常見問題的排查與解決方法,需要的朋友可以參考下
    2024-11-11
  • MySQL定時器常用案例

    MySQL定時器常用案例

    這篇文章主要介紹了MySQL定時器的相關知識,本文結合使用案例給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Mysql主從同步備份策略分享

    Mysql主從同步備份策略分享

    主從服務器上的MySQL數據庫版本同為5.1.34
    2011-05-05
  • MySQL 十大常用字符串函數詳解

    MySQL 十大常用字符串函數詳解

    數據庫函數是一種具有某種功能的模塊,可以接收零個或多個輸入值,并且返回一個輸出值,這篇文章給大家介紹MySQL 十大常用字符串函數,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • Mysql表創(chuàng)建外鍵報錯解決方案

    Mysql表創(chuàng)建外鍵報錯解決方案

    這篇文章主要介紹了Mysql表創(chuàng)建外鍵報錯解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Mysql 自定義隨機字符串的實現方法

    Mysql 自定義隨機字符串的實現方法

    前段時間接了一個項目,需要用到隨機字符串,但是mysql的庫函數沒有直接提供,需要我們自己實現此功能,下面小編給大家介紹下Mysql 自定義隨機字符串的實現方法,需要的朋友參考下吧
    2016-08-08
  • mysql 5.7.18 安裝配置方法圖文教程(CentOS7)

    mysql 5.7.18 安裝配置方法圖文教程(CentOS7)

    這篇文章主要為大家詳細介紹了CentOS 7下mysql 5.7.18 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評論

定陶县| 环江| 九江市| 潼关县| 安宁市| 黄浦区| 罗山县| 纳雍县| 平泉县| 博兴县| 兰考县| 忻城县| 金昌市| 漠河县| 青龙| 肃宁县| 满洲里市| 兴和县| 乐东| 龙胜| 绵竹市| 双桥区| 溆浦县| 大厂| 噶尔县| 正宁县| 建始县| 黑山县| 八宿县| 双峰县| 麦盖提县| 隆安县| 翁牛特旗| 湖北省| 马边| 泰兴市| 团风县| 蒙自县| 连云港市| 西平县| 西昌市|