真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在MySQL中查詢回表

本篇內(nèi)容介紹了“怎么在MySQL中查詢回表”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的上饒網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!


我們先來看看什么是回表?

通俗的講就是,如果索引的列在 select 所需獲得的列中(因?yàn)樵?mysql 中索引是根據(jù)索引列的值進(jìn)行排序的,所以索引節(jié)點(diǎn)中存在該列中的部分值)或者根據(jù)一次索引查詢就能獲得記錄就不需要回表,如果 select 所需獲得列中有大量的非索引列,索引就需要到表中找到相應(yīng)的列的信息,這就叫回表。

根據(jù)這個(gè)概念,當(dāng)你使用 Explain 執(zhí)行查詢計(jì)劃時(shí),當(dāng)結(jié)果中 Extra 出現(xiàn)了 using index、using where、using index condition 等你就認(rèn)為使用了過濾條件,使用了索引,SQL 優(yōu)化的還不錯(cuò)。這其實(shí)是一種錯(cuò)誤的認(rèn)識(shí)。

因?yàn)?,使用了索引并不代表查詢就最?yōu)。從 using index condition、using index & using where 等可以看出,這條 SQL 語句其實(shí)是進(jìn)行了回表的。

還有些時(shí)候,你查看 Explain 執(zhí)行計(jì)劃后,發(fā)現(xiàn)明明走了索引,為什么還是慢?這里面可能就是存在回表了。下面我們通過一個(gè)例子來說明什么是回表。先創(chuàng)建一張表,sql 語句如下:

create table xttblog(
   id int primary key,
   k int not null,
   name varchar(16),
   index (k)
)engine = InnoDB;

然后,我們?cè)賵?zhí)行下面的 SQL 語句,插入幾條測(cè)試數(shù)據(jù)。

怎么在MySQL中查詢回表

假設(shè),現(xiàn)在我們要查詢出 id 為 2 的數(shù)據(jù)。那么執(zhí)行 select * from xttblog where ID = 2; 這條 SQL 語句就不需要回表。原因是根據(jù)主鍵的查詢方式,則只需要搜索 ID 這棵 B+ 樹。主鍵是唯一的,根據(jù)這個(gè)唯一的索引,MySQL 就能確定搜索的記錄。

但當(dāng)我們使用 k 這個(gè)索引來查詢 k = 2 的記錄時(shí)就要用到回表。select * from xttblog where k = 2; 原因是通過 k 這個(gè)普通索引查詢方式,則需要先搜索 k 索引樹,然后得到主鍵 ID 的值為 1,再到 ID 索引樹搜索一次。這個(gè)過程雖然用了索引,但實(shí)際上底層進(jìn)行了兩次索引查詢,這個(gè)過程就稱為回表。

也就是說,基于非主鍵索引的查詢需要多掃描一棵索引樹。因此,我們?cè)趹?yīng)用中應(yīng)該盡量使用主鍵查詢。

我這里表里的數(shù)據(jù)量比較少,如果數(shù)據(jù)量大的話,你能很明顯的看出兩次查詢所用的時(shí)間,很明顯使用主鍵查詢效率更高。

怎么在MySQL中查詢回表    

“怎么在MySQL中查詢回表”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


標(biāo)題名稱:怎么在MySQL中查詢回表
網(wǎng)站URL:http://weahome.cn/article/pogddp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部