码迷,mamicode.com
首页 > 数据库 > 详细

有关MySQL索引的一点补充

时间:2016-10-27 20:12:12      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:rom   排序   .com   失效   映射   range   sel   lex   主键   

索引算是MySQL里面一个相当重要的东西了,常见的概念网上到处都是,这里就不写出来了,主要写点自己在平时使用过程中的一点注意事项,以备后期自己查阅:

- like %xx
    select * from tb1 where name like %cn; --未使用索引
    select * from tb1 where name like ‘cn%; --使用索引
- 使用函数
    --未使用索引
    select * from tb1 where reverse(name) = Hwan;
    --使用索引
    select * from tb1 where name = reverse(Hwan);
    
- or
    select * from tb1 where nid = 1 or email = seven@live.com;
    特别的:当or条件中有未建立索引的列才失效,以下会走索引
            select * from tb1 where nid = 1 or name = seven;
            select * from tb1 where nid = 1 or email = seven@live.com and name = alex
- 类型不一致
    如果列是字符串类型,传入条件是必须用引号引起来,不然...
    select * from tb1 where name = 999;
- !=
    select * from tb1 where name != alex  --all
    特别的:如果是主键,则还是会走索引
        select * from tb1 where nid != 123 --range
- >
    select * from tb1 where name > alex
    特别的:如果是主键或索引是整数类型,则还是会走索引
        select * from tb1 where nid > 123
        select * from tb1 where num > 123
- order by
    select email from tb1 order by name desc;
    当根据索引排序时候,选择的映射如果不是索引,则不走索引
    特别的:如果对主键排序,则还是走索引:
        select * from tb1 order by nid desc;
 
- 组合索引最左前缀
    如果组合索引为:(name,email)
    name and email       -- 使用索引
    name                 -- 使用索引
    email                -- 不使用索引
 

 

有关MySQL索引的一点补充

标签:rom   排序   .com   失效   映射   range   sel   lex   主键   

原文地址:http://www.cnblogs.com/Hwan/p/6004962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!