首页 > 数据库技术 > 详细

有关MySQL索引的一点补充

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

索引算是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索引的一点补充

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!