1.WHERE字句的查询条件里有不等于号(WHERE column!=…),MYSQL将无法使用索引

2.类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=…),MYSQL将无法使用索引

3.在JOIN操作中(需要从多个数据表提取数据时),MYSQL只有在主键和外键的数据类型相同时才能使用索引,否则即使建立了索引也不会使用

4.如果WHERE子句的查询条件里使用了比较操作符LIKE和REGEXP,MYSQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKE 'abc%',MYSQL将使用索引;如果条件是LIKE '%abc',MYSQL将不使用索引。

5.在ORDER BY操作中,MYSQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。尽管如此,在涉及多个数据表的查询里,即使有索引可用,那些索引在加快ORDER BY操作方面也没什么作用。

6.如果某个数据列里包含着许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含了净是些诸如“0/1”或“Y/N”等值,就没有必要为它创建一个索引。

7.索引有用的情况下就太多了。基本只要建立了索引,除了上面提到的索引不会使用的情况下之外,其他情况只要是使用在WHERE条件里,ORDER BY 字段,联表字段,一般都是有效的。 建立索引要的就是有效果。 不然还用它干吗? 如果不能确定在某个字段上建立的索引是否有效果,只要实际进行测试下比较下执行时间就知道。

8.如果条件中有or(并且其中有or的条件是不带索引的),即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)。注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引

9.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引

10.如果mysql估计使用全表扫描要比使用索引快,则不使用索引

mysql引用表无效列_Mysql使用索引可能失效的场景相关推荐

  1. mysql单表数据列_MySQL 之 数据操作及单表查询

    1.数据操作 (1)insert 增加数据 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3-字段n) VALUES(值1,值2,值3-值n); 语法二: ...

  2. mysql 增加主键列_MySQL添加列、删除列,创建主键等常用操作总结

    一. 列常用操作 ① 添加新的一列test_column,并将其作为主键,FIRST将其放在表中第一行,auto_increement是自动增长 alter table test_table add  ...

  3. mysql数据表添加列_如何将列添加到MySQL表

    mysql数据表添加列 The command add column is used to add an additional column to any given MySQL table. 命令a ...

  4. oracle查询两列合并成一列_MySQL复合索引和单列索引的单表查询分析

    本文由读者小平同志投稿,小平是一位非常朴实认真的猿,现于某上市证券公司做微服务开发,对 MySQL 优化有深入研究,小平的博客地址是https://blog.csdn.net/weixin_41193 ...

  5. mysql新加一列_mysql如何增加表中新的列?

    mysql中可以使用"ALTER TABLE"语句来增加表中新的列,语法格式"ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件];":默认是 ...

  6. mysql 多表 三表 删除_mysql 多表join查询索引优化

    数据准备 CREATE TABLE IF NOT EXISTS `class` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `card` int( ...

  7. mysql like 多个条件_MySQL高性能索引策略

    索引类型 从物理存储角度: 聚集索引 InnoDB 叶节点包含了完整的数据记录.这种索引叫做聚集索引.因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有 ...

  8. mysql 优化表的作用_mysql实战优化之三:表优化

    对于大多数的数据库引擎来说,硬盘操作可能是最重大的瓶颈.所以,把你的数据变得紧凑会对这种情况非常有帮助,因为这减少了对硬盘的访问. 如果一个表只会有几列罢了(比如说字典表,配置表),那么,我们就没有理 ...

  9. mysql修改表结构例子_mysql修改表结构方法实例详解

    本文实例讲述了mysql修改表结构方法.分享给大家供大家参考.具体如下: mysql修改表结构使用ALTER TABLE语句,下面就为您详细介绍mysql修改表结构的语句写法,希望对您学习mysql修 ...

最新文章

  1. stm32cubemx无法生成工程_经验分享 | STM32CubeMX + STM32F1系列开发时遇到的四个问题及解决方案分享...
  2. 团队编程项目3-学生成绩管理系统-模块开发过程
  3. Apache-Guacamole windows11 远程控制
  4. Java 中各种锁的介绍
  5. SAP云平台上的Low Code Development(低代码开发)解决方案
  6. concat特征融合_MSFNet:多重空间融合网络进行实时语义分割(北航和旷视联合提出)...
  7. 复杂网络环境下的访问控制技术
  8. 信息学奥赛一本通 2054:【例3.4】适合晨练
  9. 俯瞰大雾弥漫下的鄱阳湖二桥
  10. linux的vmstat命令,Linux中vmstat命令起什么作用呢?
  11. 网站建设php的心得和体会,网页设计心得体会
  12. 《Shell脚本学习指南》学习笔记
  13. 中级软件设计师笔记全套 看完你就过啦
  14. Python3.7+tkinter实现身高计算器
  15. DRILLNET 2.0------第十章 井筒固井模块
  16. 带参宏定义和带参函数的区别
  17. Ubuntu 13.04下安装WPS for Linux
  18. IT男真实的情感记录
  19. 目标伪类选择器元素状态伪类
  20. PCL学习笔记1 —— PCL库简要说明

热门文章

  1. win10 使用wireshark抓包本地localhost请求
  2. Git 入门最佳实践
  3. 背包型动态规划——零钱兑换
  4. 使用canvas实现对图片的翻转
  5. 感谢我的python老师
  6. SpringBoot整合Shiro学习(上)
  7. 西安电子科技大学计算机复试题目,西安电子科技大学考研复试 微机原理练习题...
  8. 青少年沉迷游戏得鱼教育老师告诉家长如何处理
  9. 《7天精通直播带货》运营型主播成长型,提升直播能力与技巧
  10. 贝塞尔曲线(Bezier)之 QQ 消息拖拽动画效果