MYSQL哪些情况下会忽略索引[通俗易懂]

MYSQL哪些情况下会忽略索引

大家好,又见面了,我是全栈君。

如何检查SQL语句是否用到索引?

使用“EXPLAIN sql语句”进行调试,查看possible_keys或key
possible_keys:可能应用的索引
key:实际使用的索引
MYSQL哪些情况下会忽略索引[通俗易懂]

哪些情况下索引会被忽略

  1. 前导LIKE 语句
    前导模糊查询不生效 (如 like ‘%XX’或者like ‘%XX%’)

//生效
explain select * from cartoon where `name` like '家里来了位道长大人%'
//不生效
explain select * from cartoon where `name` like '%555%'
  1. “or“ 条件

  2. “in“ 条件

  3. “<>“ 不等于判断

  4. “between“ 范围条件,可使用 where xx> 1 and xx<3代替

  5. IS NULL 或 IS NOT NULL,判断为空

  6. 不能在索引上做任何操作(计算、函数、自动/手动类型转换)

MYSQL索引类型

索引类型

1. 普通索引 (index)

2. 唯一索引 (unique)

在普通索引的基础上,会进行排除重复值

3. 主键索引 (primary key)

和唯一索引的区别在于一个表里只能有一个主键索引,但是唯一索引可以有多个。

4. 组合索引

ALTER TABLE table_name ADD INDEX index_name ( column1column2column3 )

5. 全文索引 (fulltext)

普通索引/唯一索引/主键索引 哪个速度更快?

速度是一样的快,因为三者都是采用btree二叉树算法进行查找。

2种索引算法

BTREE算法

Innodb和MyISAM默认的索引是BTREE索引
采用二叉树算法,左边的树枝小于根节点关键词,右边大于根节点,两边的树的深度不大于1,从而降低时间复杂度。

HASH算法

Mermory默认的索引是Hash索引
Hash索引只能用于HASH值比较,例如=,<> 操作符,不像BTREE索引需要从根节点到枝节点,最后才能访问到页节点这样多次IO访问,所以检索效率远高于BTREE索引。

为什么不默认采用HASH索引呢?

HASH只能用在=和<>上,所以功能受限,所以默认采用BTREE。

MYSQL哪些情况下会忽略索引[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111899.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何申请注册在国内可以登录使用国外邮箱?「建议收藏」

    如何申请注册在国内可以登录使用国外邮箱?「建议收藏」2022年冬奥会的开始、冰墩墩的爆火,这些让在国外无法回国的华人,十分羡慕,也让很多之前不怎么联系的朋友使用邮件交流了起来,那么是不是所有邮箱都可以向国外发信呢?其实并不是,我之前使用过,很多邮箱都是无法向国外发信的,现在我注册使用的是TomVIP邮箱,公司使用的Tom企业邮箱,因为做出口贸易,才选择的这家邮箱,在国外收发信方面做的还是非常棒的!如何申请注册国外邮箱首先,要进入邮箱官网(网页进行搜索、网址直接进入),选择自己喜欢的邮箱域名,点击注册;其次,选择邮箱套餐,依据自己日常使用的邮箱容量、发信

    2022年7月12日
    91
  • mysql自定义函数写法_mysql多实例部署

    mysql自定义函数写法_mysql多实例部署本文实例讲述了mysql自定义函数原理与用法。分享给大家供大家参考,具体如下:本文内容:什么是函数函数的创建函数的调用函数的查看函数的修改函数的删除首发日期:2018-04-18什么是函数:函数存储着一系列sql语句,调用函数就是一次性执行这些语句。所以函数可以降低语句重复。【但注意的是函数注重返回值,不注重执行过程,所以一些语句无法执行。所以函数并不是单纯的sql语句集合。】mysql函数有自己…

    2022年9月8日
    0
  • 值得推荐的Idea十几大优秀插件

    值得推荐的Idea十几大优秀插件最近,闲来无事,为了改变一下枯燥的编程环境,特地搜寻了下有助提升代码功力的插件,够装逼,够狂,拽,屌~绚丽的画面,多彩的跳动,让你区别其他程序猿。产品,测试,开发看到你的界面,眼睛都会发光~算了,我实在是编不下去,自己去体验吧~PS:☆半星★一星主要是以狂拽屌指数来排名12、Stackoverflow这个插件其实是最实用的插件,程序猿遇到的问题…

    2022年6月16日
    125
  • 一阶倒立摆分析_倒立摆受力分析

    一阶倒立摆分析_倒立摆受力分析摆的运动是两种运动的叠加:1.平动,包含x方向和y方向。2.转动,转轴为质心。尽管物理上的转轴是其端点,但这个端点同时也是摆的受力点。在端点(非中心)施加垂直于摆臂的力,摆将绕其质心转动。  因为摆的重力作用于其转轴(质心),因此摆自身的重力对摆不施加力矩。这可以算作将质心作为转轴来分析的一个优势。   …

    2022年8月18日
    4
  • 充分条件和必要条件的口诀_充分必要条件的例子100个

    充分条件和必要条件的口诀_充分必要条件的例子100个充分条件:如果条件A是结论B的充分条件:A与其他条件是并连关系,即A、C、D….中任意一个存在都可以使得B成立(就像是个人英雄主义),如下图:<imgsrc="https://p

    2022年8月6日
    2
  • centos7 安装nginx 完整步骤「建议收藏」

    centos7 安装nginx 完整步骤「建议收藏」1.安装gccgcc是用来编译下载下来的nginx源码 yuminstallgcc-c++2、安装pcre和pcre-devel  PCRE(PerlCompatibleRegularExpressions)是一个Perl库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,pcre-devel是使用pcre开…

    2022年4月29日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号