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

Mysql之EXPLAIN顯示using filesort介紹

 更新時間:2012年02月27日 22:08:06   作者:  
EXPLAIN 是mysql解釋select查詢的一個關鍵字,可以很方便的用于調試
語法格式如下
EXPLAIN tbl_name
或者:
EXPLAIN SELECT select_options
EXPLAIN 語句可以被當作 DESCRIBE 的同義詞來用,也可以用來獲取一個MySQL要執(zhí)行的 SELECT 語句的相關信息。

EXPLAIN tbl_name 語法和 DESCRIBE tbl_name 或 SHOW COLUMNS FROM tbl_name 一樣。

當在一個 SELECT 語句前使用關鍵字 EXPLAIN 時,MYSQL會解釋了即將如何運行該 SELECT 語句,它顯示了表如何連接、連接的順序等信息。

以下信息為引用:

在explain我們所使用的sql的時候,經常會遇到using filesort這種情況,原以為是由于有相同列值的原因引起,結果昨天看到公司的一個sql,跟同事討論了下加上自己又做了一些測試,突然發(fā)現(xiàn)自己原來的想法是錯誤的。

首先,只有在order by 數據列的時候才可能會出現(xiàn)using filesort,而且如果你不對進行order by的這一列設置索引的話,無論列值是否有相同的都會出現(xiàn)using filesort。因此,只要用到order by 的這一列都應該為其建立一個索引。

其次,在這次測試中,使用了一個稍微有點復雜的例子來說明這個問題,下面詳細用這個例子說一下:

SELECT * FROM DB.TB WHERE ID=2222 AND FID IN (9,8,3,13,38,40) ORDER BY INVERSE_DATE LIMIT 0, 5
里面建立的索引為一個三列的多列索引:IDX(ID,FID ,INVERSE_DATE) 。INVERSE_DATE這個是時間的反向索引。

對于這個sql我當時最開始認為應該是個優(yōu)化好的狀態(tài),應該沒有什么紕漏了,結果一explain才發(fā)現(xiàn)竟然出現(xiàn)了:Using where; Using filesort。

為什么呢,后來經過分析才得知,原來在多列索引在建立的時候是以B-樹結構建立的,因此建立索引的時候是先建立ID的按順序排的索引,在相同ID的情況下建立FID按 順序排的索引,最后在FID 相同的情況下建立按INVERSE_DATE順序排的索引,如果列數更多以此類推。有了這個理論依據我們可以看出在這個sql使用這個IDX索引的時候只是用在了order by之前,order by INVERSE_DATE 實際上是using filesort出來的。。汗死了。。因此如果我們要在優(yōu)化一下這個sql就應該為它建立另一個索引IDX(ID,INVERSE_DATE),這樣就消除了using filesort速度也會快很多。問題終于解決了。

相關文章

  • MySQL 日期時間格式化函數 DATE_FORMAT() 的使用示例詳解

    MySQL 日期時間格式化函數 DATE_FORMAT() 的使用示例詳解

    `DATE_FORMAT()`是MySQL中用于格式化日期時間的函數,本文詳細介紹了其語法、格式化字符串的含義以及常見日期時間格式組合,感興趣的朋友一起看看吧
    2025-03-03
  • windows和linux安裝mysql后啟用日志管理功能的方法

    windows和linux安裝mysql后啟用日志管理功能的方法

    在默認情況下,mysql安裝后是沒有啟用日志管理功能的,這給維護帶來很多不便的地方,下面介紹windows和linux安裝mysql后啟用日志管理功能的方法
    2014-01-01
  • MySQL DeadLock故障排查全過程記錄

    MySQL DeadLock故障排查全過程記錄

    這篇文章主要給大家介紹了關于MySQL DeadLock故障排查的全過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • MySQL5.7并行復制原理及實現(xiàn)

    MySQL5.7并行復制原理及實現(xiàn)

    MySQL 5.7并行復制的思想簡單易懂,本文就詳細的介紹了MySQL5.7并行復制原理及實現(xiàn),需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • 淺談開啟magic_quote_gpc后的sql注入攻擊與防范

    淺談開啟magic_quote_gpc后的sql注入攻擊與防范

    通過啟用php.ini配置文件中的相關選項,就可以將大部分想利用SQL注入漏洞的駭客拒絕于門外
    2012-01-01
  • Mysql中的join操作

    Mysql中的join操作

    這篇文章主要介紹了Mysql join操作的相關資料,需要的朋友可以參考下
    2017-05-05
  • MySQL實現(xiàn)樂觀鎖的方式詳解

    MySQL實現(xiàn)樂觀鎖的方式詳解

    在 MySQL 中,可以通過使用樂觀鎖來實現(xiàn)并發(fā)控制,以避免數據沖突和并發(fā)更新問題,樂觀鎖是一種樂觀的思想,它假設并發(fā)操作不會導致沖突,只有在提交更新時才會檢查是否發(fā)生沖突,本文給大家介紹了Mysql如何實現(xiàn)樂觀鎖,需要的朋友可以參考下
    2023-09-09
  • MySQL SQL 語法參考

    MySQL SQL 語法參考

    MySQL SQL 語法參考...
    2006-12-12
  • MySQL 5.5.49 大內存優(yōu)化配置文件優(yōu)化詳解

    MySQL 5.5.49 大內存優(yōu)化配置文件優(yōu)化詳解

    最近mysql服務器升級到了MySQL 5.5.49版本,性能比mysql 5.0.**肯定效率高了不少,但mysql的默認配置文件不合理,這里是針對大內存訪問量大的機器的配置方案,需要的朋友可以參考下
    2016-05-05
  • SQL使用WHERE條件語句的項目實踐

    SQL使用WHERE條件語句的項目實踐

    本文將介紹WHERE子句中使用的通用語法,它還將概述如何在單個WHERE子句中組合多個搜索條件謂詞以更細粒度的方式過濾數據,以及如何使用NOT操作符排除而不是包含滿足給定搜索條件的行,感興趣的可以了解一下
    2023-09-09

最新評論

望城县| 东宁县| 黄龙县| 黔江区| 个旧市| 马龙县| 灵武市| 和田市| 花莲县| 宜君县| 三台县| 贺兰县| 玛曲县| 伊宁县| 秦安县| 香港 | 庄浪县| 通山县| 临汾市| 安西县| 元氏县| 兰溪市| 常德市| 威海市| 琼中| 原阳县| 兴城市| 阜平县| 芦溪县| 永州市| 隆子县| 西畴县| 深州市| 集贤县| 视频| 宝丰县| 吴川市| 武陟县| 疏附县| 西盟| 客服|