亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Mysql 復合索引 誤區實踐

發布時間:2020-08-12 00:01:12 來源:ITPUB博客 閱讀:166 作者:西湖看海 欄目:MySQL數據庫

背景:很多dba在生產生活中經常會使用到mysql的聯合索引,作者在工作中也經常遇到,本文講解下其中的一個誤區,sql語句中聯合索引必須在where條件后面按索引字段的先后順序寫嗎?下面案例將實際講解下
環境:os:centos7.4  mysql_version:mysql5.7.21

1、建表t2 創建了復合索引idx_con_update(realname,age)
    CREATE TABLE `t2` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `realname` varchar(255) NOT NULL,
      `age` tinyint(1) NOT NULL DEFAULT '0',
      `createdAt` datetime NOT NULL,
      `updatedAt` datetime NOT NULL,
      PRIMARY KEY (`id`),
      KEY `idx_con_update` (`realname`,`age`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2、插入數據
(root@localhost:mysql.sock) [test]>select * from t2;
+----+----------+-----+---------------------+---------------------+
| id | realname | age | createdAt           | updatedAt           |
+----+----------+-----+---------------------+---------------------+
|  1 | kitten   |  20 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  2 | kitten1  |  21 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  3 | kitten2  |  22 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  4 | kitten2  |  22 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  5 | kitten3  |  23 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  6 | kitten4  |  24 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  7 | kitten5  |  25 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  8 | kitten6  |  26 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
|  9 | kitten7  |  27 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
| 10 | kitten8  |  28 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
| 11 | kitten9  |  29 | 2016-03-02 15:10:00 | 2016-03-08 16:28:00 |
+----+----------+-----+---------------------+---------------------+
11 rows in set (0.00 sec)
3、查看執行計劃
    (root@localhost:mysql.sock) [test]>(root@localhost:mysql.sock) [test]>explain     select * from t2 where realname='kitten5' and age=25\G;
    *************************** 1. row ***************************
           id: 1
      select_type: SIMPLE
        table: t2
       partitions: NULL
         type: ref
    possible_keys: idx_con_update
          key: idx_con_update
      key_len: 768
          ref: const,const
         rows: 1
     filtered: 100.00
        Extra: NULL
    1 row in set, 1 warning (0.00 sec)
    
    
    分析執行計劃:很明顯 查詢語句走了復合索引idx_con_update
    把where條件順序反一下是否還會走idx_con_update索引呢?看下面
    
    (root@localhost:mysql.sock) [test]>explain select * from t2     where  age=25 and realname='kitten5'\G;
    *************************** 1. row ***************************
           id: 1
      select_type: SIMPLE
        table: t2
   partitions: NULL
         type: ref
    possible_keys: idx_con_update
              key: idx_con_update
      key_len: 768
          ref: const,const
         rows: 1
     filtered: 100.00
        Extra: NULL
    1 row in set, 1 warning (0.01 sec)

    分析執行計劃:查詢條件順序更換之后 查詢依然走索引

總結:經常有同事、朋友咨詢我索引的事情、所以大膽使用復合索引、不用擔心索引字段的先后順序

    

   
向AI問一下細節

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

AI

桃园县| 黎平县| 龙门县| 康定县| 尼木县| 大关县| 湘潭县| 留坝县| 开封市| 民乐县| 南丰县| 镇沅| 周宁县| 栾城县| 方正县| 永川市| 宁河县| 祁东县| 成武县| 获嘉县| 枣阳市| 芜湖市| 彭州市| 莱芜市| 永春县| 浦东新区| 法库县| 四平市| 宁德市| 彰化市| 百色市| 灵宝市| 高邑县| 德昌县| 禹州市| 运城市| 梧州市| 安庆市| 亚东县| 芮城县| 浠水县|