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

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

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

1 回表的性能消耗

無(wú)論單列索引 還是 聯(lián)合索引,一個(gè)索引就對(duì)應(yīng)一個(gè)獨(dú)立的B+索引樹(shù),索引樹(shù)節(jié)點(diǎn)僅包含:

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

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

select * from table order by xx1,xx2,xx3

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

select * from table order by xx1,xx2,xx3

相當(dāng)于得把聯(lián)合索引和聚簇索引,兩個(gè)索引的所有數(shù)據(jù)都掃描一遍,那還不如不走聯(lián)合索引,直接全表掃描得了,這樣就只需掃描一個(gè)主鍵索引。

但若形如:

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

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

2 覆蓋索引

覆蓋索引不是一種索引,只是一種基于索引查詢(xún)的方式,即針對(duì)類(lèi)似

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

僅需聯(lián)合索引里的幾個(gè)字段的值,那就只需掃描聯(lián)合索引的索引樹(shù),無(wú)需回表找其它字段,這種查詢(xún)方式就是覆蓋索引。
所以當(dāng)你使用聯(lián)合索引時(shí),注意是否可能會(huì)導(dǎo)致大量回表到聚簇索引,若回表聚簇索引的次數(shù)太多,可能就直接給你做成全表掃描而不走聯(lián)合索引了。
盡可能還是在SQL里指定你僅需要的字段,而不要暴力select *,最好直接走覆蓋索引。
即使無(wú)可避免地要回表,你也盡可能用limit、 where限定一下回表的次數(shù),就從聯(lián)合索引里篩選少數(shù)數(shù)據(jù),再回表,這樣性能好一點(diǎn)。

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

相關(guān)文章

  • 解決MySQL數(shù)據(jù)庫(kù)意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無(wú)法啟動(dòng)的問(wèn)題

    解決MySQL數(shù)據(jù)庫(kù)意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無(wú)法啟動(dòng)的問(wèn)題

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無(wú)法啟動(dòng)的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • mysql 讀寫(xiě)分離(基礎(chǔ)篇)

    mysql 讀寫(xiě)分離(基礎(chǔ)篇)

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

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

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

    全面解析MySQL常見(jiàn)問(wèn)題的排查與解決方法

    MySQL 是一款常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),廣泛應(yīng)用于各類(lèi)應(yīng)用開(kāi)發(fā)和數(shù)據(jù)管理場(chǎng)景,然而,在實(shí)際使用中,MySQL 有時(shí)會(huì)遇到啟動(dòng)失敗、服務(wù)中斷或性能問(wèn)題等情況,所以本文給大家介紹了MySQL常見(jiàn)問(wèn)題的排查與解決方法,需要的朋友可以參考下
    2024-11-11
  • MySQL定時(shí)器常用案例

    MySQL定時(shí)器常用案例

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

    Mysql主從同步備份策略分享

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

    MySQL 十大常用字符串函數(shù)詳解

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

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

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

    Mysql 自定義隨機(jī)字符串的實(shí)現(xiàn)方法

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

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

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

最新評(píng)論