欢迎光临
我们一直在努力

MySQL 5.5 模式匹配LIKE

mysql> select * from t_test;
+——–+————-+———+
| deptno | dname       | loc     |
+——–+————-+———+
|     10 | Research    | Beijing |
|     20 | Maintenance | Huludao |
|     30 | Market      | Tianjin |
|     40 | Leader      | Qingdao |
+——–+————-+———+
4 rows in set (0.00 sec)

mysql> create index idx_test_dname on t_test(dname);
Query OK, 0 rows affected (0.31 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show keys from t_test\G
*************************** 1. row ***************************
        Table: t_test
   Non_unique: 1
     Key_name: idx_test_dname
 Seq_in_index: 1
  Column_name: dname
    Collation: A
  Cardinality: 4
     Sub_part: NULL
       Packed: NULL
         Null: 
   Index_type: BTREE
      Comment: 
Index_comment: 
1 row in set (0.00 sec)

%Lea%没有使用索引扫描

mysql> explain select * from t_test where dname like ‘%Lea%’;
+—-+————-+——–+——+—————+——+———+——+——+————-+
| id | select_type | table  | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+—-+————-+——–+——+—————+——+———+——+——+————-+
|  1 | SIMPLE      | t_test | ALL  | NULL          | NULL | NULL    | NULL |    4 | Using where |
+—-+————-+——–+——+—————+——+———+——+——+————-+
1 row in set (0.00 sec)

Lea%使用索引扫描

mysql> explain select * from t_test where dname like ‘Lea%’;
+—-+————-+——–+——-+—————-+—————-+———+——+——+————-+
| id | select_type | table  | type  | possible_keys  | key            | key_len | ref  | rows | Extra       |
+—-+————-+——–+——-+—————-+—————-+———+——+——+————-+
|  1 | SIMPLE      | t_test | range | idx_test_dname | idx_test_dname | 47      | NULL |    1 | Using where |
+—-+————-+——–+——-+—————-+—————-+———+——+——+————-+
1 row in set (0.12 sec)

mysql> explain select dname from t_test where dname like ‘Lea%’;
+—-+————-+——–+——-+—————-+—————-+———+——+——+————————–+
| id | select_type | table  | type  | possible_keys  | key            | key_len | ref  | rows | Extra                    |
+—-+————-+——–+——-+—————-+—————-+———+——+——+————————–+
|  1 | SIMPLE      | t_test | index | idx_test_dname | idx_test_dname | 47      | NULL |    4 | Using where; Using index |
+—-+————-+——–+——-+—————-+—————-+———+——+——+————————–+
1 row in set (0.00 sec)

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。