91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

通過IN換INNER JOIN實現對mysql的優化

發布時間:2020-05-27 14:44:01 來源:網絡 閱讀:610 作者:三月 欄目:MySQL數據庫

不知道大家之前對類似通過IN換INNER JOIN實現對mysql的優化的文章有無了解,今天我在這里給大家再簡單的講講。感興趣的話就一起來看看正文部分吧,相信看完通過IN換INNER JOIN實現對mysql的優化你一定會有所收獲的。

SQL問題:

要將A表查詢的ID,匹配B表的ID,并將B表全部內容查詢出來:

未優化前:

MySQL [xxuer]> SELECT 
    ->     COUNT(*)
    -> FROM
    ->     t_cmdb_app_version
    -> WHERE
    ->     id IN (SELECT 
    ->             pid
    ->         FROM
    ->             t_cmdb_app_relation UNION SELECT 
    ->             rp_id
    ->         FROM
    ->             t_cmdb_app_relation);
+----------+
| COUNT(*) |
+----------+
|      266 |
+----------+
1 row in set (0.21 sec)


優化后:

MySQL [xxuer]> SELECT 
    ->     count(*)
    -> FROM
    ->     t_cmdb_app_version a
    ->         INNER JOIN
    ->     (SELECT 
    ->         pid
    ->     FROM
    ->         t_cmdb_app_relation UNION SELECT 
    ->         rp_id
    ->     FROM
    ->         t_cmdb_app_relation) b ON a.id = b.pid;
+----------+
| count(*) |
+----------+
|      266 |
+----------+
1 row in set (0.00 sec)


查看執行計劃對比:

MySQL [xxuer]> explain SELECT 
    ->     COUNT(*)
    -> FROM
    ->     t_cmdb_app_version
    -> WHERE
    ->     id IN (SELECT 
    ->             pid
    ->         FROM
    ->             t_cmdb_app_relation UNION SELECT 
    ->             rp_id
    ->         FROM
    ->             t_cmdb_app_relation);
+----+--------------------+---------------------+-------+---------------+---------+---------+------+------+--------------------------+
| id | select_type        | table               | type  | possible_keys | key     | key_len | ref  | rows | Extra                    |
+----+--------------------+---------------------+-------+---------------+---------+---------+------+------+--------------------------+
|  1 | PRIMARY            | t_cmdb_app_version  | index | NULL          | PRIMARY | 4       | NULL |  659 | Using where; Using index |
|  2 | DEPENDENT SUBQUERY | t_cmdb_app_relation | ALL   | NULL          | NULL    | NULL    | NULL |  383 | Using where              |
|  3 | DEPENDENT UNION    | t_cmdb_app_relation | ALL   | NULL          | NULL    | NULL    | NULL |  383 | Using where              |
| NULL | UNION RESULT       | <union2,3>          | ALL   | NULL          | NULL    | NULL    | NULL | NULL | Using temporary          |
+----+--------------------+---------------------+-------+---------------+---------+---------+------+------+--------------------------+
4 rows in set (0.00 sec)
MySQL [xxuer]> explain SELECT 
    ->     count(*)
    -> FROM
    ->     t_cmdb_app_version a
    ->         INNER JOIN
    ->     (SELECT 
    ->         pid
    ->     FROM
    ->         t_cmdb_app_relation UNION SELECT 
    ->         rp_id
    ->     FROM
    ->         t_cmdb_app_relation) b ON a.id = b.pid;
+----+--------------+---------------------+--------+---------------+---------+---------+-------+------+--------------------------+
| id | select_type  | table               | type   | possible_keys | key     | key_len | ref   | rows | Extra                    |
+----+--------------+---------------------+--------+---------------+---------+---------+-------+------+--------------------------+
|  1 | PRIMARY      | <derived2>          | ALL    | NULL          | NULL    | NULL    | NULL  |  766 | Using where              |
|  1 | PRIMARY      | a                   | eq_ref | PRIMARY       | PRIMARY | 4       | b.pid |    1 | Using where; Using index |
|  2 | DERIVED      | t_cmdb_app_relation | ALL    | NULL          | NULL    | NULL    | NULL  |  383 | NULL                     |
|  3 | UNION        | t_cmdb_app_relation | ALL    | NULL          | NULL    | NULL    | NULL  |  383 | NULL                     |
| NULL | UNION RESULT | <union2,3>          | ALL    | NULL          | NULL    | NULL    | NULL  | NULL | Using temporary          |
+----+--------------+---------------------+--------+---------------+---------+---------+-------+------+--------------------------+
5 rows in set (0.00 sec)

看完通過IN換INNER JOIN實現對mysql的優化這篇文章,大家覺得怎么樣?如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇康县| 城步| 博客| 潮州市| 五华县| 邵阳县| 黔西县| 手游| 柘城县| 图们市| 任丘市| 博湖县| 江安县| 泾阳县| 永丰县| 闽清县| 尼勒克县| 长岛县| 鹤壁市| 阿图什市| 彩票| 游戏| 印江| 拜城县| 平山县| 吉木萨尔县| 莎车县| 内江市| 祁阳县| 伊川县| 扎兰屯市| 景东| 湖北省| 读书| 永丰县| 桃园市| 富顺县| 溧阳市| 柳林县| 安远县| 布拖县|