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

一文帶你理解MySql中explain結(jié)果filtered

 更新時間:2022年09月09日 14:55:00   作者:xszhaobo  
使用EXPLAIN關(guān)鍵字可以模擬優(yōu)化器執(zhí)行SQL查詢語句,從而知道MySQL是如何處理你的SQL語句的,下面這篇文章主要給大家介紹了關(guān)于MySql中explain結(jié)果filtered的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

MySql explain語句的返回結(jié)果中,filtered字段要怎么理解?

MySql5.7官方文檔中描述如下:

The filtered column indicates an estimated percentage of table rows filtered by the table condition. The maximum value is 100, which means no filtering of rows occurred. Values decreasing from 100 indicate increasing amounts of filtering. rows shows the estimated number of rows examined and rows × filtered shows the number of rows joined with the following table. For example, if rows is 1000 and filtered is 50.00 (50%), the number of rows to be joined with the following table is 1000 × 50% = 500.

這段文字不是很好理解,舉例來說,有如下三個查詢語句的explain結(jié)果,針對b和c表的顯示filtered是100,而針對a表的顯示是18。

+-------------+-------+--------+---------+---------+------+----------+
| select_type | table | type   | key     | key_len | rows | filtered |
+-------------+-------+--------+---------+---------+------+----------+
| PRIMARY     | a     | range  | search  | 4       |  174 |   18.00  |
| PRIMARY     | b     | eq_ref | PRIMARY | 4       |    1 |   100.00 |
| PRIMARY     | c     | ALL    | PRIMARY | 4       |    1 |   100.00 |

我們可以怎么理解filtered的值呢?從filtered的值中得出什么結(jié)論呢?到底是100更好還是18更好?

首先,這里的filtered表示通過查詢條件獲取的最終記錄行數(shù)占通過type字段指明的搜索方式搜索出來的記錄行數(shù)的百分比。

以上圖的第一條語句為例,MySQL首先使用索引(這里的type是range)掃描表a,預(yù)計(jì)會得到174條記錄,也就是rows列展示的記錄數(shù)。接下來MySql會使用額外的查詢條件對這174行記錄做二次過濾,最終得到符合查詢語句的32條記錄,也就是174條記錄的18%。而18%就是filtered的值。

更完美的情況下,應(yīng)該是使用某個索引,直接搜索出32條記錄并且過濾掉另外82%的記錄。

因此一個比較低filtered值表示需要有一個更好的索引,假如type=all,表示以全表掃描的方式得到1000條記錄,且filtered=0.1%,表示只有1條記錄是符合搜索條件的。此時如果加一個索引可以直接搜出來1條數(shù)據(jù),那么filtered就可以提升到100%。

由此可見,filtered=100%確實(shí)是要比18%要好。

當(dāng)然,filtered不是萬能的,關(guān)注執(zhí)行計(jì)劃結(jié)果中其他列的值并優(yōu)化查詢更重要。比如為了避免出現(xiàn)filesort(使用可以滿足order by的索引),即使filtered的值比較低也沒問題。再比如上面filtered=0.1%的場景,我們更應(yīng)該關(guān)注的是添加一個索引提高查詢性能,而不是看filtered的值。

參考內(nèi)容:

MySQL :: MySQL 5.7 Reference Manual :: 8.8.2 EXPLAIN Output Format

innodb - What is the meaning of filtered in MySQL explain? - Database Administrators Stack Exchange

總結(jié) 

到此這篇關(guān)于MySql中explain結(jié)果filtered的文章就介紹到這了,更多相關(guān)MySql中explain結(jié)果filtered內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql查詢表是否被鎖的方法

    mysql查詢表是否被鎖的方法

    在本篇文章里小編給大家分享的是關(guān)于mysql查詢表是否被鎖的方法,有需要的朋友們可以參考下。
    2020-10-10
  • mysql把一個表某個字段的內(nèi)容復(fù)制到另一張表的某個字段的SQL語句寫法

    mysql把一個表某個字段的內(nèi)容復(fù)制到另一張表的某個字段的SQL語句寫法

    有時候,我們需要復(fù)制某個字段一整列的數(shù)據(jù)到另外一個新的字段中,或是需要把某個表的某個字段的值跨表復(fù)制到另一個表中的某個字段,本文就羅列了一些SQL語句寫法,需要的朋友可以參考下
    2014-04-04
  • 一文了解MySQL事務(wù)隔離級別

    一文了解MySQL事務(wù)隔離級別

    這篇文章主要介紹了一文了解MySQL事務(wù)隔離級別,MySQL?事務(wù)隔離級別是為了解決并發(fā)事務(wù)互相干擾的問題的,文章介紹?4?種事物隔離,需要的小伙伴可以學(xué)習(xí)一下
    2022-07-07
  • MySQL配置文件my.cnf中文詳解附mysql性能優(yōu)化方法分享

    MySQL配置文件my.cnf中文詳解附mysql性能優(yōu)化方法分享

    Mysql參數(shù)優(yōu)化對于新手來講,是比較難懂的東西,其實(shí)這個參數(shù)優(yōu)化,是個很復(fù)雜的東西,對于不同的網(wǎng)站,及其在線量,訪問量,帖子數(shù)量,網(wǎng)絡(luò)情況,以及機(jī)器硬件配置都有關(guān)系,優(yōu)化不可能一次性完成,需要不斷的觀察以及調(diào)試,才有可能得到最佳效果。
    2011-09-09
  • Mysql縱表轉(zhuǎn)換為橫表的方法及優(yōu)化教程

    Mysql縱表轉(zhuǎn)換為橫表的方法及優(yōu)化教程

    在應(yīng)用中為了從不同的視圖去分析數(shù)據(jù),會使用不同的方案去查詢數(shù)據(jù)庫,橫表和縱表的相互轉(zhuǎn)換就是其中一個常見的情景,這篇文章主要給大家介紹了關(guān)于Mysql縱表轉(zhuǎn)換為橫表的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • mysql大批量插入數(shù)據(jù)的正確解決方法

    mysql大批量插入數(shù)據(jù)的正確解決方法

    這篇文章主要介紹了mysql大批量插入數(shù)據(jù)的正確做法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • mysql中l(wèi)eft join設(shè)置條件在on與where時的用法區(qū)別分析

    mysql中l(wèi)eft join設(shè)置條件在on與where時的用法區(qū)別分析

    這篇文章主要介紹了mysql中l(wèi)eft join設(shè)置條件在on與where時的用法區(qū)別,結(jié)合實(shí)例形式分析了mysql中l(wèi)eft join設(shè)置條件在on與where時的相關(guān)用法區(qū)別與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • 使用innodb_force_recovery解決MySQL崩潰無法重啟問題

    使用innodb_force_recovery解決MySQL崩潰無法重啟問題

    這篇文章主要介紹了使用innodb_force_recovery解決MySQL崩潰無法重啟問題,這只一個成功案例,并不是萬能的解決方法,需要酌情考慮,需要的朋友可以參考下
    2015-05-05
  • MySQL中的排序函數(shù)field()實(shí)例詳解

    MySQL中的排序函數(shù)field()實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL中排序函數(shù)field()的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • MySQL order by實(shí)現(xiàn)原理分析和Filesort優(yōu)化方式

    MySQL order by實(shí)現(xiàn)原理分析和Filesort優(yōu)化方式

    這篇文章主要介紹了MySQL order by實(shí)現(xiàn)原理分析和Filesort優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論