Mysql中的最左前缀原则

目录

 

前述:

详述:

总述:


前述:

在了解mysql索引机制时,组合索引提到了遵循最左前缀原则,所以对此进行了了解,在此记录

对于我们的sql有没有使用索引,可以使用explain关键字来查看sql语句的执行计划,可以通过explan关键字来查看当前sql是否使用索引
 

详述:

由上面所说的,最左原则一般作用用于mysql中的组合索引中的

假设现在创建一个表mytable,且创建a,b,c组合索引,索引名为abc,

CREATE TABLE mytable ( `a` int(11), `b` VARCHAR(32), `c` VARCHAR(32),INDEX mytable_abc (`a`,`b`,`c`) );

下面我们根据上面的mytable_abc组合索引,来说下"最左前缀原则".

  1. 上面创建组合索引时,第一个字段为a
    根据最左前缀原则,在sql的where后,必须使用字段a作为条件,则可使用组合索引。例如:
    select * form mytable where a = 1  
    select * form mytable where a = 1  and b = 'hehe' 
    select * form mytable where a = 1  and c = 'heihei'
    select * form mytable where c = 'heihei' and b = 'hehe' and a = 1
    ...
    总的来说,就是where后要有字段a作为条件,才会使用索引,只有a作为条件,至于a在where中出现的先后顺序,则不影响
    如果where条件中不带a,只有b或者c,则在查询时,则不会使用索引。例如:
    select * form mytable where b = 'hehe' 
    select * form mytable where c = 'heihei' and b = 'hehe'
  2. 在where中使用字段a进行like查询时,用like时左边必须是固定值通配符只能出现在右边,则使用索引。例如:
    select * from mytable where a like '1%';#此时a为varchar类型
    通配符在右边时,则不会使用索引,例如:
    select * from mytable where a like '%1';#此时a为varchar类型

     

总述:

以上便是mysql中最左前缀原则及其使用注意的地方,其实最核心的地方也在其名字上了:最左前缀。

注意的是:在组合索引中,对于索引的使用,需要用到最左前缀原则哦。

参考文档:
https://www.cnblogs.com/songcuiting/p/10385058.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值