主页 > InnoDB存储引擎 > SQL语句无法使用索引的情况

SQL语句无法使用索引的情况

小牛教程 InnoDB存储引擎 2021年07月01日
  ①where条件:
  
  ​    列进行计算:
  
  ​    explain select * from orders where o_custkey=o_custkey+1;
  
  ​    列使用函数:
  
  ​    explain select * from orders where o_custkey=ceil(o_custkey);
  
  ​    列进行隐式转换:
  
  ​    explain select * from emp where ename=007;
  
  ②联合索引:用到范围查询,只能用到部分索引
  
  ③联表查询:
  
  ​    关联条件字符集不同,不走索引
  
  ​    关联条件的列类型不同,不走索引
  
  ④其他情况:
  
  ​    。select * from emp;
  
  ​    。查询结果集大于数据量的30%,不走索引
  
  ​        explain select * from emp where empno > 7000;
  
  ​    。索引本身失效
  
  ​    。like '%s'
  
  ​        explain select * from emp where ename like '%s';
  
  ​    。not in(111,9999) 普通索引,如果是主键索引,会被优化为范围查询,可以利用索引
  
  ​        explain select * from emp where empno not in(111, 9999);
  
  ​    。!=
  
  ​        explain select * from emp where empno != 9999;
广告位
标签: mysql索引