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查询优化器在执行查询前会决定是否有索引覆盖查询。

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

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

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


相关推荐

  • C语言提供的将字符串转换为整数的函数_java整型转字符串

    C语言提供的将字符串转换为整数的函数_java整型转字符串本文主要介绍C++语言中,整型转换为字符串类型的方法。1使用to_string函数在c++11标准中,我们可以使用to_string函数,将整型转换为字符串类型。1.1to_string函数介绍to_string函数的用法如下:stringto_string(intval);stringto_string(longval);stringto_string(longlongv…

    2022年10月10日
    3
  • 三万字详解SpringClould高可用流量防护组件Sentinel哨兵(含源码例子)[通俗易懂]

    三万字详解SpringClould高可用流量防护组件Sentinel哨兵(含源码例子)[通俗易懂]文章目录一、断路器1.1.为什么使用断路器?1.2.断路器两大常用组件Sentinel和Hystrix对比二、sentinel主要特性三、sentinel两个部分、三步骤3.1.两部分3.2.三步骤四、使用核心库(如果已经引入了springcloudalibabajar不需要单独选择版本,只需直接引用)一、断路器1.1.为什么使用断路器?在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程

    2022年6月2日
    34
  • jps 命令_jps只有一个jps进程

    jps 命令_jps只有一个jps进程简介jps(全称:JavaVirtualMachineProcessStatusTool)是java提供的一个用来显示当前所有java进程的pid的命令。unix系统里也有一个ps命令,用来显示当前系统的进程id及其基本情况。配置环境变量jsp命令的位置在JAVA_HOME/bin/jps下,如果使用sudoaptgetinstall、dpkg-i、yuminstall命令进行安装,会自动配置环境变量。如果手动解压,可以编辑~/.bashrc

    2022年9月19日
    4
  • MySQL 日期格式时间戳转换函数

    MySQL 日期格式时间戳转换函数简介方便查看函数功能,特摘录在此。平时比较常用的时间、字符串、时间戳之间的互相转换,虽然常用但是几乎每次使用时候都喜欢去搜索一下用法;本文将作为一个笔记,整理一下三者之间的转换(即:date转字符串、date转时间戳、字符串转date、字符串转时间戳、时间戳转date,时间戳转字符串)用法,方便日后查看;涉及的函数date_format(date,format)函数,MySQ…

    2022年6月21日
    47
  • 软件工程NS图_软件工程软件结构图怎么画

    软件工程NS图_软件工程软件结构图怎么画一、实验目的(1)熟悉常用的详细设计表达工具(2)掌握利用visio等CASE工具设计程序流程图,NS图,PAD图的画法(3)掌握利用visualstudio等IDE完成实现代码的编写和调试二、实验内容从以下几个程序要求中任选其中的一个进行详细设计和编码实现。1) 求一组数组中的最大数,数组表示为A(n),n=自然数1,2……。2) 对输入的两个正整数a和b求其最大公约数,1<=a,b<=100003) 对输入的两个正整数a和b求其最小公倍数,1<=a,b&lt

    2022年8月13日
    3
  • android studio usb连接手机_android studio怎么用真机调试

    android studio usb连接手机_android studio怎么用真机调试    Android开发者第一步学习的应该就是真机调试了。但是很多初次接触androidstudio的同学还是不知道如何用真机调试,今天我就给大家写一个教程,希望可以帮到需要的人。   我使用的是一款国家电网定制机型。Android版本为:5.0.2。     1.先用usb线把你的测试手机连接到你的电脑上,并且安装驱动(由于机子型号不同,安装方式有差异,可以根据你的机子百度安装…

    2025年11月10日
    5

发表回复

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

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