MySQL5.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)

网站题目:MySQL5.5模式匹配LIKE
链接地址:http://hxwzsj.com/article/pdpjji.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都品牌网站设计 定制网站制作 成都网站设计 成都网站建设 成都网站建设 成都定制网站建设 网站设计制作 攀枝花网站设计 企业网站设计 营销型网站建设 营销型网站建设 app网站建设 高端网站设计推广 网站建设改版 成都网站设计 成都网站制作 企业手机网站建设 成都网站建设 营销网站建设 成都网站建设 成都网站设计 成都网站设计