1、索引列上使用函数(replace\SUBSTR\CONCAT\sum count avg)、表达式、计算(+ - * /):

explain SELECT * FROM `t2` where id+1 = 4;

2、字符串不加引号,出现隐式转换

ALTER TABLE user_innodb DROP INDEX comidx_name_phone;
ALTER TABLE user_innodb add INDEX comidx_name_phone (name,phone);
explain SELECT * FROM `user_innodb` where name = 136;
explain SELECT * FROM `user_innodb` where name = '136';

3、like 条件中前面带%

where 条件中like abc%,like %2673%,like %888 都用不到索引吗?为什么?

explain select *from user_innodb where name like 'wang%';
explain select *from user_innodb where name like '%wang';

过滤的开销太大,所以无法使用索引。这个时候可以用全文索引。

4、负向查询

NOT LIKE 不能:

explain select *from employees where last_name not like 'wang'

!= (<>)和NOT IN 在某些情况下可以:

explain select *from employees where emp_no not in (1)
explain select *from employees where emp_no <> 1

注意一个SQL 语句是否使用索引,跟数据库版本、数据量、数据选择度都有关系。

其实,用不用索引,最终都是优化器说了算。

优化器是基于什么的优化器?

基于cost 开销(Cost Base Optimizer),它不是基于规则(Rule-Based Optimizer),也不是基于语义。怎么样开销小就怎么来。

https://docs.oracle.com/cd/B10501_01/server.920/a96533/rbo.htm#38960

https://dev.mysql.com/doc/refman/5.7/en/cost-model.html

什么时候用不到索引?相关推荐

  1. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  2. mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引

    在项目中,常常要用到联合唯一   在一些配置表中,一些列的组合成为一条记录.   比如,在游戏中,游戏的分区和用户id会形成一条记录.(比如,一个qq用户可以在艾欧尼亚.德玛西亚创建两个账号) 添加联 ...

  3. 索引是建的越多越好吗?

    索引是建的越多越好吗? 明显不是,有以下几点: 数据量小的表不需要建立索引,建立会增加额外的索引开销 不经常引用的列不要建立索引,因为不常用,即使建立了索引也没有多大意义.对经常用于查询的字段应该创建 ...

  4. 联合索引最左匹配原则成因

    使用col3,col2,col1 顺序建立联合索引,通过col3的值建立一个b+tree ,通过关键值去查找"Alice",在叶子节点中找到两个"Alice", ...

  5. Go 中切片索引与 Python 中列表索引的差异

    1. 索引编号超过对象的实际长度 1.1 Python 列表索引 Python 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609] ...

  6. dataframe,python,numpy 问题索引2

    20220330 print(frame3.isnull().any()) 找出存在空值的列 print("========================") print(fra ...

  7. dataframe,python,numpy 问题索引1

    # 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...

  8. python pandas 如何找到NaN、缺失值或者某些元素的索引名称以及位置,np.where的使用

    我们在处理数据的时候,经常需要检查数据的质量,也需要知道出问题的数据在哪个位置.我找了很久,也尝试了很多办法,都没能找到一种非常直接的函数,本文所要介绍的是一种我认为比较方便的方法:np.where( ...

  9. 【PyTorch学习笔记】4:在Tensor上的索引和切片

    索引和维度是不同的 负数的索引是从1而不是0开始的 维度和顺向索引取值都是从0开始的 一个维度里面 冒号最左边的值取不到 index_select:第一个参数是指定维度

  10. 深度学习原理与框架-CNN在文本分类的应用 1.tf.nn.embedding_lookup(根据索引数据从数据中取出数据) 2.saver.restore(加载sess参数)...

    1. tf.nn.embedding_lookup(W, X) W的维度为[len(vocabulary_list), 128], X的维度为[?, 8],组合后的维度为[?, 8, 128] 代码说 ...

最新文章

  1. 制作 Swift 和 Objective-C Mixed 的 Pod
  2. 【Linux 内核】CFS 调度器 ② ( CFS 调度器 “ 权重 “ 概念 | CFS 调度器调度实例 | 计算进程 “ 实际运行时间 “ )
  3. 云原生生态周报 Vol. 8 | Gartner 发布云原生趋势
  4. CV:计算机视觉技术之图像基础知识(一)—以python的cv2库来了解计算机视觉图像基础(傅里叶变换-频域-时域/各种滤波器-线性-非线性-均值-中值-高斯-双边)
  5. 如何成为python 数据分析师_如何七周成为数据分析师20:了解和掌握Python的函数...
  6. 【数据结构与算法】之深入解析运用链表结构计算“两数相加”的算法实现
  7. Curator实现分布式锁的基本原理-createsTheLock
  8. 在Windows平台下使用Gitblit搭建Git服务器图文解说
  9. C++类的定义和对象的创建
  10. 【图像处理】彩色图像自适应对比度增强(OpenCV实现)
  11. xugang 记录一个.NET 程序员的成长 asp.net水晶报表的一些问题
  12. oracle 中关于 SID db_name、instance_name (转)
  13. 模糊综合评价模型 ——第四部分,三级模糊综合评价模型应用:例题5,陶瓷厂六种产品销量的评判
  14. bodymovin输出Json动画为黑白的解决方案
  15. ESD-PCIe 402-1 CAN卡驱动安装及测试
  16. 【安全资讯】阿里巴巴遭遇网络爬虫,泄露11.8亿条淘宝个人信息
  17. 机器人方队解说词_创想机器人博物馆配音解说词
  18. abaqus2018安装教程win10_win10怎么安装abaqus v6.12_win10系统abaqus v6.12安装详细教程
  19. 穷查理宝典_穷查理宝典
  20. 高效能人士的七个习惯(一)由内而外全面造就自己

热门文章

  1. UVA532 - Dungeon Master(裸BFS)
  2. python后端从数据库请求数据给到前端的具体实现
  3. MySQL5.7.17源码编译安装与配置
  4. Flume Source 实例
  5. 转载---SQL Server XML基础学习2之--FOR XML AUTO/RAW
  6. Linux 安装Redis全过程日志
  7. 我理解的Hanlder--android消息传递机制
  8. zigbee 编译source_zigbee_sensor_monitor_v1_2_1 vs2008 qt-win-opensource-src-4.4.3
  9. Jdom的SAXBuilder解析String形式的XML
  10. 注解@PostConstruct与@PreDestroy