<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        [MySQLView]最有意義的視圖view優化過程,從30分鐘到0.08秒

        來源:懂視網 責編:小采 時間:2020-11-09 13:36:18
        文檔

        [MySQLView]最有意義的視圖view優化過程,從30分鐘到0.08秒

        [MySQLView]最有意義的視圖view優化過程,從30分鐘到0.08秒:[MySQL View]最有意思的視圖view優化過程,從30分鐘到0.08秒 開發人員寫了一個view,select要30分鐘,讓我優化下,view如下: CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW view_offer_label AS SELECT o
        推薦度:
        導讀[MySQLView]最有意義的視圖view優化過程,從30分鐘到0.08秒:[MySQL View]最有意思的視圖view優化過程,從30分鐘到0.08秒 開發人員寫了一個view,select要30分鐘,讓我優化下,view如下: CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW view_offer_label AS SELECT o

        [MySQL View]最有意思的視圖view優化過程,從30分鐘到0.08秒 開發人員寫了一個view,select要30分鐘,讓我優化下,view如下: CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW view_offer_label AS SELECT ol.OFFER_ID AS OFFER_ID,ol.EFFECTIVE_DATE

        [MySQL View]最有意思的視圖view優化過程,從30分鐘到0.08秒
        開發人員寫了一個view,select要30分鐘,讓我優化下,view如下:
        CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW view_offer_label AS
        SELECT ol.OFFER_ID AS OFFER_ID,ol.EFFECTIVE_DATE AS EFFECTIVE_DATE
        FROM offer_label ol
        WHERE(
        ol.ID =
        (SELECT ol2.ID
        FROM offer_label ol2
        WHERE ((ol.OFFER_ID = ol2.OFFER_ID) AND (ol2.LABEL = 'PROD'))
        ORDER BY ol2.EFFECTIVE_DATE DESC,ol2.ID DESC LIMIT 1
        )
        )

        開發人員select一下需要30多分鐘:
        21068 rows in set (1987.08 sec)

        先解析一下:
        mysql> explain SELECT `ol`.`OFFER_ID` AS `OFFER_ID`,`ol`.`EFFECTIVE_DATE` AS `EFFECTIVE_DATE`
        -> FROM `offer_label` `ol`
        -> WHERE (`ol`.`ID` =
        -> (SELECT `ol2`.`ID`
        -> FROM `offer_label` `ol2`
        -> WHERE ((`ol`.`OFFER_ID` = `ol2`.`OFFER_ID`) AND (`ol2`.`LABEL` = 'PROD'))
        -> ORDER BY `ol2`.`EFFECTIVE_DATE` DESC,`ol2`.`ID` DESC LIMIT 1));
        +----+--------------------+-------+-------+------------------------------------+-------------------+---------+---------------------------+--------+------------------------------------------+
        | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
        +----+--------------------+-------+-------+------------------------------------+-------------------+---------+---------------------------+--------+------------------------------------------+
        | 1 | PRIMARY | ol | index | NULL | offer_label_index | 1542 | NULL | 143299 | Using where; Using index |
        | 2 | DEPENDENT SUBQUERY | ol2 | ref | OFFER_LABEL_FKEY,offer_label_index | offer_label_index | 1534 | const,catalog.ol.OFFER_ID | 1 | Using where; Using index; Using filesort |
        +----+--------------------+-------+-------+------------------------------------+-------------------+---------+---------------------------+--------+------------------------------------------+
        2 rows in set (0.00 sec)

        看到有 Using filesort,要優化where后面的子判斷,優化如下:
        select max(ol2.ID)
        from offer_label ol2
        where ol2.LABEL = 'PROD'
        group by ol2.OFFER_ID
        order by ol2.EFFECTIVE_DATE DESC,ol2.ID DESC;
        mysql> explain select max(ol2.ID)
        -> from offer_label ol2
        -> where ol2.LABEL = 'PROD'
        -> group by ol2.OFFER_ID
        -> order by ol2.EFFECTIVE_DATE DESC,ol2.ID DESC;
        +----+-------------+-------+------+-------------------+-------------------+---------+-------+-------+-----------------------------------------------------------+
        | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
        +----+-------------+-------+------+-------------------+-------------------+---------+-------+-------+-----------------------------------------------------------+
        | 1 | SIMPLE | ol2 | ref | offer_label_index | offer_label_index | 767 | const | 71649 | Using where; Using index; Using temporary; Using filesort |
        +----+-------------+-------+------+-------------------+-------------------+---------+-------+-------+-----------------------------------------------------------+
        1 row in set (0.00 sec)

        有些不對勁,再仔細看了view的結構,恍然大悟:

        優化成如下樣子:

        CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW view_offer_label AS
        SELECT ol2.OFFER_ID, max(EFFECTIVE_DATE) EFFECTIVE_DATE
        FROM offer_label ol2
        WHERE ol2.LABEL = 'PROD'
        group by ol2.OFFER_ID ;


        執行結果為:

        21068 rows in set (0.08 sec)

        不到0.08秒,數據完全正確。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        [MySQLView]最有意義的視圖view優化過程,從30分鐘到0.08秒

        [MySQLView]最有意義的視圖view優化過程,從30分鐘到0.08秒:[MySQL View]最有意思的視圖view優化過程,從30分鐘到0.08秒 開發人員寫了一個view,select要30分鐘,讓我優化下,view如下: CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW view_offer_label AS SELECT o
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产精品免费久久久久电影网| 亚洲成AV人片久久| 久久亚洲AV成人出白浆无码国产| 亚洲高清有码中文字| 国产成人精品久久免费动漫| 国产成人精品日本亚洲网站| 黄色短视频免费看| 久久精品国产精品亚洲艾| 91大神在线免费观看| 亚洲精品电影在线| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产成人亚洲午夜电影| 四虎永久在线精品免费一区二区| 亚洲性无码AV中文字幕| 国产成人免费全部网站 | 亚洲电影在线免费观看| 国产亚洲综合视频| 中文字幕版免费电影网站| 亚洲国产香蕉碰碰人人| 香蕉视频在线观看免费国产婷婷 | 91九色视频无限观看免费| 亚洲三级在线免费观看| 免费观看AV片在线播放| 另类专区另类专区亚洲| 日本免费中文字幕| 美女无遮挡免费视频网站| 久久国产亚洲精品| 二个人看的www免费视频| 成人免费在线观看网站| 免费久久人人爽人人爽av| 无码日韩人妻AV一区免费l| 中字幕视频在线永久在线观看免费| 无码国产精品一区二区免费式芒果 | 国产亚洲一卡2卡3卡4卡新区| 亚洲国产精品午夜电影| 国产精品免费在线播放| 久久综合AV免费观看| 精品国产sm捆绑最大网免费站| 亚洲av再在线观看| 蜜桃视频在线观看免费网址入口| 国产精品亚洲不卡一区二区三区 |