广告
返回顶部
首页 > 资讯 > 数据库 >会导致索引失效语句
  • 872
分享到

会导致索引失效语句

会导致索引失效语句 2014-09-21 06:09:01 872人浏览 猪猪侠
摘要

使用like关键字模糊查询时,% 放在前面索引不起作用,只有“%”不在第一个位置,索引才会生效(like ‘%文’–索引不起作用)2、使用联合索引时,只有查询条件中使用了这些字段中的第一个字段,索引才会生效3、使用OR关键字的查询,查询语句

使用like关键字模糊查询时,% 放在前面索引不起作用,只有“%”不在第一个位置,索引才会生效(like ‘%文’–索引不起作用)
2、使用联合索引时,只有查询条件中使用了这些字段中的第一个字段,索引才会生效
3、使用OR关键字的查询,查询语句的查询条件中只有OR关键字,且OR前后的两个条件中的列都是索引时,索引才会生效,否则索引不生效。
4、尽量避免在where子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。
5、对查询进行优化,应尽量避免全表扫描,首先应考虑在where以及order by涉及的列上建立索引。
6、应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
  select id from t where num/2=100
  应改为:
  select id from t where num=100*2
7、尽量避免在where子句中对字段进行函数操作,将导致引擎放弃使用索引而进行全表扫描。
8、不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
9、并不是所有的索引对查询都有效,sql是根据表中的数据来进行查询优化的,当索引列有大量数据重复时,sql查询不会去利用索引,如一表中有字段
  sex,male,female几乎个一半,那么即使在sex上建立了索引也对查询效率起不了作用。
10、索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,
  因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,
  若太多则应考虑一些不常使用到的列上建的索引是否有 必要。
11、尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。
  这是因为引擎在处理查询和连接时会 逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。
12、Mysql查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的。
   因此数据库默认排序可以符合要求的情况下不要使用排序操作,尽量不要包含多个列的排序,如果需要最好给这些列建复合索引。
13、order by 索引 ,不起作用的问题(除了主键索引之外):
  1、 如果select 只查询索引字段,order by 索引字段会用到索引,要不然就是全表排列;

  2、如果有where 条件,比如where vtype=1 order by vtype asc . 这样order by 也会用到索引!

二、四种索引

PRIMARY, INDEX, UNIQUE 这3种是一类
PRIMARY 主键。 就是 唯一 且 不能为空。
INDEX 索引,普通的
UNIQUE 唯一索引。 不允许有重复。
FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。

三、常用SQL优化:
1.优化group by 语句
默认情况,mysql对所有的group by col1,col2进行排序。这与在查询中指定order by col1, col2类似。如果查询中包括group by但用户想要避免排序结果的消耗,则可以使用order by null禁止排序
2.有些情况下,可以使用连接来替代子查询。因为使用join,MySQL不需要在内存中创建临时表。
3.如果想要在含有or的查询语句中利用索引,则or之间的每个条件列都必须用到索引,如果没有索引,则应该考虑增加索引
select * from 表名 where 条件1=‘’ or 条件2=‘tt’

————————————————

原文链接:https://blog.csdn.net/qq_42695926/article/details/83900198

您可能感兴趣的文档:

--结束END--

本文标题: 会导致索引失效语句

本文链接: https://www.lsjlt.com/news/3188.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 会导致索引失效语句
    使用like关键字模糊查询时,% 放在前面索引不起作用,只有“%”不在第一个位置,索引才会生效(like ‘%文’–索引不起作用)2、使用联合索引时,只有查询条件中使用了这些字段中的第一个字段,索引才会生效3、使用OR关键字的查询,查询语句...
    99+
    2014-09-21
    会导致索引失效语句
  • sql会导致索引失效吗
    小编给大家分享一下sql会导致索引失效吗,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言网上经常能看到一些文章总结在 mysq...
    99+
    2022-10-18
  • 哪些情况会导致 MySQL 索引失效
    目录前言创建测试表和数据索引失效情况1:非最左匹配索引失效情况2:错误模糊查询索引失效情况3:列运算索引失效情况4:使用函数索引失效情况5:类型转换索引失效情况6:使用 is not...
    99+
    2022-11-13
  • mysql中什么情况会导致索引失效
    这篇文章主要为大家展示了“mysql中什么情况会导致索引失效”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中什么情况会导致索引失效”这篇文章吧。为了讲解以下索引内容,我们先建立一个临时...
    99+
    2023-06-25
  • 浅谈mysql哪些情况会导致索引失效
    下面有一些培训教学机构的口诀和我个人的一些总结: 为了讲解以下索引内容,我们先建立一个临时的表 test02 CREATE TABLE `sys_user` ( `id` v...
    99+
    2022-11-12
  • MySQL导致索引失效的几种情况
    目录一、准备工作二、索引失效规则1.优先使用联合索引2.最左匹配原则3.范围条件右边的列索引失效4.计算、函数导致索引失效5.类型转换导致索引失效6.不等于(!= 或者<>)索引失效7.is null可以使用...
    99+
    2022-06-23
    Mysql 索引失效
  • MySQL 使用 OR 条件导致索引失效
    背景:需要根据工号或英文名带出中文名,但数据量过大,导致响应时间过长 查询工号为 x20230506 或者英文名是 codeporter 的用户信息 select * from user_test where login...
    99+
    2023-09-05
    mysql 性能优化
  • MySQL隐式类型转换导致索引失效
    今天发现一个问题,where条件的列上明明有索引,但是执行计划还是走全表扫描mysql>  explain select task_id&n...
    99+
    2022-10-18
  • MySQL导致索引失效的情况有哪些
    本篇内容主要讲解“MySQL导致索引失效的情况有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL导致索引失效的情况有哪些”吧!一、准备工作首先准备两张表用于演示:CREATE&nbs...
    99+
    2023-07-02
  • 导致MySQL索引失效的一些常见写法总结
    前言 最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用的易于学习和使用...
    99+
    2022-05-16
    mysql 索引 mysql索引使用 mysql组合索引失效
  • MySQL隐式类型转换导致索引失效的解决
    目录问题 复现 隐式转换 总结 参考 问题 在工作中发现,有一个接口只执行一条SQL查询语句,并且SQL明明使用了主键列,但是速度很慢。 在MySQL中EXPLAINN后发现,执行...
    99+
    2022-11-12
  • mysql索引为什么会失效
    这篇文章主要介绍了mysql索引为什么会失效,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql索引失效的几种情况:1、条件中有or,即使其...
    99+
    2022-10-18
  • PostgreSQL索引失效会发生什么
    前段时间碰到个奇怪的索引失效的问题,实际情况类似下面这样: bill=# begin; BEGIN bill=*# create index idx_t1 on t1(id); CREATE INDEX bill=*# ...
    99+
    2022-09-19
  • mysql字段为NULL索引会失效吗
    本篇内容介绍了“mysql字段为NULL索引会失效吗”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!项目场景:很多博客说mysql在字段中创建...
    99+
    2023-06-30
  • mysql索引什么情况下会失效
    mysql索引在不使用索引列进行查询、数据类型不匹配、前缀索引的使用不当、使用函数或表达式进行查询、索引列的顺序不正确、数据更新频繁和索引过多或过少情况下会失效。1、不使用索引列进行查询,为了避免这种情况,应该在查询中使用适当的索引列;2、...
    99+
    2023-08-09
  • mysql回表致索引失效案例讲解
    简介 mysql的innodb引擎查询记录时在无法使用索引覆盖的场景下,需要做回表操作获取记录的所需字段。 mysql执行sql前会执行sql优化、索引选择等操作,mysql会预估各...
    99+
    2022-11-12
  • MySQL索引失效原因及SQL查询语句不走索引原因是什么
    这篇“MySQL索引失效原因及SQL查询语句不走索引原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我...
    99+
    2023-03-07
    mysql sql
  • MySQL索引失效原因以及SQL查询语句不走索引原因详解
    目录前言1. 隐式的类型转换,索引失效2. 查询条件包含 or,可能导致索引失效3. like 通配符可能导致索引失效4. 查询条件不满足联合索引的最左匹配原则5. 在索引列login_time上使用 mysql 的内置...
    99+
    2023-03-06
    mysql索引在什么时候失效 mysql 索引失效 mysql索引失效怎么办
  • Partition table分区表删除分区数据时导致索引失效怎么办
    小编给大家分享一下Partition table分区表删除分区数据时导致索引失效怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下...
    99+
    2022-10-18
  • SQL语句里会导致性能问题的3个场景
      条件字段做函数操作:  破坏了索引值的有序性,所以优化器决定放弃走树搜索功能,但不是放弃走索引,只是不能使用索引的快速定位功能,可以使用使用全索引扫描,当然也可能会直接遍历主键索引。  mysql>...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作