mysql 组合索引 前缀_Mysql中的联合索引、前缀索引、覆盖索引[通俗易懂]

mysql 组合索引 前缀_Mysql中的联合索引、前缀索引、覆盖索引[通俗易懂]索引索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。联合索引又名复合索引,由两个或多个列的索引。它规定了mysql从左到右地使用索引字段,对字段的顺序有一定要求。一个查询可以只使用索引中的一部分,更准确地说是最左侧部分(最左优先)。如索引是keyindex(a,b,c).可以支持a|a,b|a,b,c…

大家好,又见面了,我是你们的朋友全栈君。

索引

索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

联合索引

又名复合索引,由两个或多个列的索引。它规定了mysql从左到右地使用索引字段,对字段的顺序有一定要求。一个查询可以只使用索引中的一部分,更准确地说是最左侧部分(最左优先)。如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

CREATE TABLE test(a INT, b INT, c INT, KEY(a, b, c));

1

前缀索引

对于列的值较长,比如BLOB、TEXT、VARCHAR,就必须建立前缀索引,即将值的前一部分作为索引。这样既可以节约空间,又可以提高查询效率。但无法使用前缀索引做 ORDER BY 和 GROUP BY,也无法使用前缀索引做覆盖扫描。

# 语法

ALTER TABLE table_name ADD KEY(column_name(prefix_length));

# 示例

ALTER TABLE city ADD KEY(cityname(7))

1

2

3

4

覆盖索引

跟联合索引有点类似,就是在查询t的时候只用去读取索引而取得数据,无需进行二次查询相关表。这样的索引的叶子节点上面也包含了他们索引的数据。

判断标准:使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142530.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 三极管是如何导通的?「建议收藏」

    三极管是如何导通的?「建议收藏」作者:被吊打的学渣链接:https://www.zhihu.com/question/19998995/answer/311658942来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转

  • C++实现超分辨率 RDN

    C++实现超分辨率 RDNRDN(由残差密集网络实现的图像超分辨率)在《RDN-TensorFlow-master》有一个3倍模型(也只有这一个了):rdn_5_3_64_x3这里用C++实现这个的3倍重建:流程图:密集残差块:这个残差块结构内部和前面的ESRGAN(前面的文章)中的密集残差块是一样的,只是外部有点不同。定义密集残差块:struct密集残差块//4个卷积层…

  • java中的输入操作

    java中的输入操作Java中输入一般是通过Scanner类来实现的:具体步骤如下:(1)创建Scanner对象,接受从控制台输入Scannerinput=newScanner(System.in);(2)接受String类型Stringstr=newinput.next();(3)接受int类型intn=input.nextInt();(4)输出结果System.out.println(str);Sys…

  • java高并发下数据入库

    java高并发下数据入库java高并发下数据批量入库该服务利用线程池并结合缓存类来处理高并发下数据入库问题,做到实时数据存入redis和数据批量入库,使用的时候需要修改为自己的业务数据,该服务暂时适合下面两种情况:1、达到设置的超时时间。2、达到最大批次。packageio.renren.service.impl;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importlombok.extern.slf4j.Slf

  • winrar3.7-winrar4.0的注冊码[通俗易懂]

    winrar3.7-winrar4.0的注冊码[通俗易懂]首先新建记事本文件(txt文件),把下面红色代码复制进去,然后将文件另存为以rarreg.key为文件名称的文件(当然因为设置的不同,可能出现你保存后的文件为rarreg.key.txt没关系

  • 详细完整MySQL8.0.23安装教程

    文章目录目录前言一、官网下载MySQL地址:https://dev.mysql.com/downloads/mysql/二、配置解压文件1.解压2.配置my.ini文件三、初始化四、安装启动mysql服务后续前言最近在做一个人脸识别的项目,需要用数据库保存学生信息与前段交互。MySQL的优点1、mysql性能卓越,服务稳定,很少出现异常宕机。2、mysql开放源代码且无版权制约,自主性及使用成本低。3、mysql历史悠久,社区及用户非.

发表回复

您的电子邮箱地址不会被公开。

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