转载 

mysql哪些查询情况不走索引_mysql查询非索引列会走索引吗_Dxy1239310216的博客

分类:    115人阅读    Damon  2023-08-24 15:53

在MySQL中,并不是你建立了索引,并且你在SQL中使用到了该列,MySQL就肯定会使用到那些索引的,有一些情况很可能在你不知不觉中,你就“成功的避开了”MySQL的所有索引。

1、索引列参与计算,不走索引

  1. SELECT `username` FROM `t_user` WHERE age=20;-- 会使用索引
  2. SELECT `username` FROM `t_user` WHERE age+10=30;-- 不会使用索引!!因为所有索引列参与了计算
  3. SELECT `username` FROM `t_user` WHERE age=30-10;-- 会使用索引

2、索引列使用函数,可能不走索引

  1. -- 不会使用索引,因为使用了函数运算,原理与上面相同
  2. SELECT username FROM t_user WHERE concat(username,'1') = 'admin1';
  3. -- 会使用索引
  4. SELECT username FROM t_user WHERE username = concat('admin','1');

3、索引列使用 like 语句,可能不走索引

  1. SELECT * FROM USER WHERE username LIKE 'mysql测试%' --走索引
  2. SELECT * FROM USER WHERE username LIKE '%mysql测试' --不走索引
  3. SELECT * FROM USER WHERE username LIKE '%mysql测试%' --不走索引

4、数据类型隐式转换,字符串列与数字直接比较,不走索引

  1. -- stock_code字符串类型带索引
  2. SELECT * FROM `stock_data` WHERE stock_code = '600538' --走索引
  3. SELECT * FROM `stock_data` WHERE stock_code = 600538 --不走索引

5、尽量避免 OR 操作,只要有一个字段没有索引,改语句就不走索引,不走索引!

  1. -- stock_code带索引,open不带索引
  2. SELECT * FROM `stock_data` WHERE `stock_code` = '600538' OR `open` = 6.62 -- 不走索引
  3. -- stock_code带索引,up_down_pre带索引
  4. SELECT * FROM `stock_data` WHERE `stock_code` = '600538' OR `up_down_pre` = 5.1 -- 走索引

6、where id !=2 或者 where id <> 2,不走索引!

SELECT * FROM t_user WHERE username <> 'mysql测试'

7、is null,is not null也无法使用索引,不走索引!

  1. SELECT * FROM t_user WHERE username IS NULL -- 不走索引
  2. SELECT * FROM t_user WHERE username IS NOT NULL -- 不走索引

8、索引列使用 in 语句,可能不走索引

  1. -- stock_code数据类型为varchar
  2. SELECT * FROM `stock_data` WHERE `stock_code` IN ('600538') -- 走索引
  3. SELECT * FROM `stock_data` WHERE `stock_code` IN ('600538','688663','688280') -- 走索引
  4. SELECT * FROM `stock_data` WHERE `stock_code` IN (大量数据) -- 不走索引
  5. SELECT * FROM `stock_data` WHERE `stock_code` IN (600538) -- 不走索引

转载于:https://blog.csdn.net/Dxy1239310216/article/details/121679668

点击广告,支持我们为你提供更好的服务

React实现的电子商务管理后台模板 - Dashtar

CSS 3D铅笔旋转效果

原子模型CSS3动画

法律服务和律师事务所HTML5模板 - AttorCo

canvas生日快乐动画特效

SEO和数字营销机构HTML模板 - SEOMY

功能齐全的ReactJs管理模板 - Adminto

立体空间感3d几何体破碎

残障人士服务网站HTML模板 - Medixare

百分比加载进度SVG线条动画

CSS DIV画的字母Q

市政府和行政机构HTML5模板 - Towngov

单页形式个人主页HTML模板 - Wedo

创意代理和初创公司HTML模板 - Wan

CSS鼠标停靠图标变大

环绕式按钮菜单

按钮的hover效果覆盖过渡

three.js立体感粒子动画

技能培训在线学习平台网站模板 - Collab

Tailwindcss高级管理后台模板框架 - T-Wind

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务