当前位置: 首页 > news >正文

MySQL-索引基础

文章概要

本篇文章通过几个问题来了解MySQL中索引相关的概念。平时在学习MySQL时或多或少都听说过索引的概念,但是索引到底是个什么东西,可能还不是非常的清楚。

正文

1. 什么是索引?

索引,在MySQL中也称为键(key),是存储引擎用于快速查找记录的一种数据结构。

2. 索引有哪些类型?

  1. B-Tree索引
    索引对于多个值进行排序的依据是CREATE TABLE语句中定义索引时列的顺序。

  2. 全文索引
    FULLTEXT是一种特殊类型的索引,它查找的是文本中的关键词,而不是直接比较索引中的值

3. B-Tree索引适用于哪些类型的查找?

  1. 全值匹配(或者说精准匹配,查询的列和索引列完全匹配)
  2. 匹配最左前缀(下面的几种都遵循这一原则)
  3. 匹配列前缀
  4. 匹配范围值
  5. 精确匹配某一列而范围匹配另外一列
  6. 只访问索引的查询

4. 什么情况下索引会失效?

  1. 如果不是按照索引的最左列开始查找,则无法使用索引。
    就是说不能跳过索引中字段起始左边几列而直接使用后面的值来进行匹配。
  2. 不能跳过索引中的列。
    和上面不同,这种情况下是使用了左边的几列,但是后面跳过几列后继续使用后面的几列来进行查询,此时存储引擎只能利用从左边开始的几列索引来进行匹配。
  3. 如果查询中有某列的范围查询,则其右边所有列都无法使用索引优化查找。

由此可见,在创建索引列时,索引的顺序至关重要,关系到后面的查询是否能够充分利用索引。

另外在这里打个问号(?),为什么这些情况下会造成某些索引列失效?

5. 使用索引有哪些优点?

  1. 索引大大减少了服务器需要扫描的数据量
  2. 索引可以帮助服务器避免排序和临时表
  3. 索引可以将随机I/O变为顺序I/O

总结

本篇文章通过5个问题来简单了解索引是什么,为什么会有索引,使用索引有哪些优势。对于文章中提到的一些概念,后面会随着学习的深入,逐步涉及,比如学习B-Tree(实际上InnoDB引擎使用的B+树,因为B树将实际的记录存到到节点中,这会占用更多的内存,另外B树是多路平衡查找树,过多平衡树的操作也会带来更多的开销。)

希望你能从本篇文章学习到一些新的东西。

参考

《高性能MySQL(第四版)》

相关文章:

MySQL-索引基础

文章概要 本篇文章通过几个问题来了解MySQL中索引相关的概念。平时在学习MySQL时或多或少都听说过索引的概念,但是索引到底是个什么东西,可能还不是非常的清楚。 正文 1. 什么是索引? 索引,在MySQL中也称为键(key)&#xff0c…...

CentOS中自动加载802.1q模块

CentOS中自动加载802.1q模块 要想在CentOS中自动加载内核模块,需要在/etc/sysconfig/modules/目录中增加一个脚本,在此脚本中加载所需的模块。 下面是我所用的一个名为8021q.modules的脚本,用来在我的CentOS 5.3中自动加载802.1Q模块&#…...

CSP-J2022第一轮试题

...

使用Java根据表名导出与导入Sql

前言 很粗糙啊,有很多可以优化的地方,而且也不安全,但是临时用还是OK的,我这个是公司里面的单机软件,不联网。 嗨!我是一名社交媒体增长黑客,很高兴能帮助您优化和丰富关于批量作业导出和导入…...

Elasticsearch同时使用should和must

问题及解决方法 must和should组合查询,should失效。使用must嵌套查询,将should组成的bool查询包含在其中一个must查询中。 SearchRequest request new SearchRequest(); request.indices("function_log");SearchSourceBuilder sourceBuilde…...

羽毛球热身和拉伸

1、绕场地慢跑 2、拉伸练习 拉伸动作主要有腕踝关节热身、下蹲、弓箭步压腿、后蹲压腿、腹背 具体动作可自行搜索练习 3、挥拍练习 杀球上网挥拍练习 正手挑球练习、反手挑球练习 4、拉伸 脚踝:一脚支持,另一脚拇指撑地正反向来回几圈转动脚踝&#…...

使用 Vue 实现页面访问拦截

使用 Vue 实现页面访问拦截 在现代的 Web 应用程序中,页面访问拦截是非常重要的一个方面。它可以用于确保用户只能访问他们有权限的页面,提高应用程序的安全性和用户体验。本篇博文将介绍如何使用 Vue 框架来实现页面访问拦截的功能。 文章目录 使用 Vu…...

使用webpack建立React+TS项目

之前写过类似的文章,这次看到一本新书里也介绍了这个知识点,故尝试之。 Refer: 《Learn React With TypeScript - A Beginners Guide To Reactive Web Development With React 18 and TypeScript》chapter3 Creating a project with webpack 1.先建立一…...

法律监督大数据平台有什么作用?

大数据赋能时代法律监督,构建法律行业领域大数据监督模型。法律监督大数据研判系统助力检察机关以社会公正为核心价值追求,对执法不严、司法不公“零容忍”,强化对诉讼活动的法律监督,坚决维护法律尊严,坚决捍卫公平正…...

根据制定的长度切割list值

88、根据制定的长度切割list值 依赖&#xff0c;谷歌开源的工具类库&#xff0c;非常的强大 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>29.0-jre</version> </dependency>其…...

AES加密(1):AES基础知识和计算过程

从产品代码的安全角度考虑&#xff0c;我们需要对代码、数据进行加密。加密的算法有很多种&#xff0c;基于速度考虑&#xff0c;我们一般使用对称加密算法&#xff0c;其中有一种常见的对称加密算法&#xff1a;AES(Advanced Encryption Standard)。在一些高端的MCU&#xff0…...

Nginx启动报错- Failed to start The nginx HTTP and reverse proxy server

根据日志&#xff0c;仍然出现 “bind() to 0.0.0.0:8888 failed (13: Permission denied)” 错误。这意味着 Nginx 仍然无法绑定到 8888 端口&#xff0c;即使使用 root 权限。 请执行以下操作来进一步排查问题&#xff1a; 确保没有其他进程占用 8888 端口&#xff1a;使用以…...

五、web应用程序技术——web功能

文章目录 一、服务器端功能1.1 SQL1.2 XML1.3 web服务 二、客户端功能2.1 HTML2.2 超链接2.3 表单2.4 CSS2.5 JavaScript2.6 文档对象模型2.7 Ajax2.8 JSON2.9 同源策略2.10浏览器拓展技术 一、服务器端功能 早期的web站点由各种静态资源组成&#xff0c;如HTML页面与图片。当用…...

AutoDL服务器的镜像版本太高,配置python3.7 tensorflow1.15版本的框架的步骤

1.选择一个实例&#xff0c;进入后端界面 2. 更新bashrc中的环境变量 conda init bash && source /root/.bashrc查看虚拟环境 conda info --envs可以看到此时有一个base的虚拟环境 但是它的python版本为3.8.10&#xff0c;无法安装tensorflow1.15,所以我们要创建一个…...

c++ boost库之scoped_ptr,shared_ptr,weak_ptr智能指针

头文件: #include <boost/smart_ptr.hpp> #include <boost/make_shared.hpp> #include <boost/shared_ptr.hpp> 1. scoped_ptr & scoped_array 只能在本作用域内使用,不希望被转让; 效率等同原始指针; scoped_ptr<string> sp(new string("t…...

【leetcode】383. 赎金信(easy)

给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 class Solution {public boolea…...

CTF-记一次PWN练习

PWN是一个黑客语法的俚语词&#xff0c;自"own"这个字引申出来的&#xff0c;这个词的含意在于&#xff0c;玩家在整个游戏对战中处在胜利的优势&#xff0c;或是说明竞争对手处在完全惨败的情形下&#xff0c;这个词习惯上在网络游戏文化主要用于嘲笑竞争对手在整个…...

《golang设计模式》第一部分·创建型模式-04-工厂方法模式(Factory Method)

文章目录 1 概述2.1 角色2.2 类图 2 代码示例2. 1 设计2.2 代码2.3 类图 3. 简单工厂3.1 角色3.2 类图3.3 代码示例3.3.1 设计3.3.2 代码3.3.3 类图 1 概述 工厂方法类定义产品对象创建接口&#xff0c;但由子类实现具体产品对象的创建。 2.1 角色 Product&#xff08;抽象产…...

redis的配置和使用、redis的数据结构以及缓存遇见的常见问题

目录 1.缓存 2.redis不仅仅可以做缓存&#xff0c;只不过说他的大部分场景&#xff0c;是做缓存。本地缓存重启后缓存里的东西就没有了&#xff0c;但是redis有。 3.redis有几个特性:查询快&#xff0c;但是是放到内存里的〈断电或者重启&#xff0c;数据就丢了)&#xff0c…...

在Ubuntu系统下修改limits.conf不生效

文章目录 前言尝试过程总结 前言 最近遇到的一个问题&#xff0c;在Ubuntu系统下修改/etc/security/limits.conf不生效&#xff0c;查了多种资料都说不用重启&#xff0c;但是我改完就是不生效&#xff0c;多次尝试之后发现Ubuntu系统有毒。 尝试过程 通过 ulimit -n 命令可…...

魔兽世界GSE宏编辑器终极指南:5步掌握技能自动化与游戏操作优化

魔兽世界GSE宏编辑器终极指南&#xff1a;5步掌握技能自动化与游戏操作优化 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-Advanced-Mac…...

README文档自动化生成工具的技术实现指南

README文档自动化生成工具的技术实现指南 【免费下载链接】readme-md-generator &#x1f4c4; CLI that generates beautiful README.md files 项目地址: https://gitcode.com/gh_mirrors/re/readme-md-generator 在开源项目日益增多的今天&#xff0c;项目文档的质量直…...

魔兽争霸3性能增强实战:WarcraftHelper让你的经典游戏重获新生

魔兽争霸3性能增强实战&#xff1a;WarcraftHelper让你的经典游戏重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为魔兽争霸3在现…...

终极指南:3步搭建完全免费的本地语音合成神器ChatTTS-ui

终极指南&#xff1a;3步搭建完全免费的本地语音合成神器ChatTTS-ui 【免费下载链接】ChatTTS-ui 一个简单的本地网页界面&#xff0c;使用ChatTTS将文字合成为语音&#xff0c;同时支持对外提供API接口。A simple native web interface that uses ChatTTS to synthesize text …...

终极指南:5分钟掌握H5P互动视频制作技巧 [特殊字符]

终极指南&#xff1a;5分钟掌握H5P互动视频制作技巧 &#x1f3ac; 【免费下载链接】h5p-interactive-video 项目地址: https://gitcode.com/gh_mirrors/h5/h5p-interactive-video 想要让枯燥的教学视频变得生动有趣吗&#xff1f;H5P互动视频项目正是您需要的解决方案…...

芋道源码yudao-cloud 二开实战:自定义文件命名策略与存储路径优化

1. 为什么需要自定义文件命名策略 在实际开发中&#xff0c;文件上传功能看似简单&#xff0c;但隐藏着不少痛点。就拿我最近接手的项目来说&#xff0c;使用芋道源码yudao-cloud框架时&#xff0c;发现默认的文件上传策略是将文件内容进行哈希计算后生成文件名。这种设计虽然保…...

从应用层到内核:一次DRM IOCTL调用如何驱动你的显示器?——以drmModeSetCrtc为例

从应用层到内核&#xff1a;一次DRM IOCTL调用如何驱动你的显示器&#xff1f;——以drmModeSetCrtc为例 当你在Linux桌面环境中拖动窗口或播放视频时&#xff0c;显示器上的像素点如何被精确控制&#xff1f;这一切的魔法始于用户空间的一个简单函数调用——drmModeSetCrtc。…...

引言:从中心化到去中心化——互联网存储的范式革命

从HTTP到CID&#xff1a;地址的哲学转变 传统互联网用位置寻址&#xff1a;https://company.com/data/file.pdf 这个URL指向的是某个服务器上的某个路径。服务器宕机、域名过期、公司倒闭&#xff0c;内容就没了。而IPFS这类分布式存储用的是内容寻址&#xff1a;QmXoypizjW3Wk…...

3分钟解锁QQ音乐加密文件:QMCDecode让你的音乐自由播放

3分钟解锁QQ音乐加密文件&#xff1a;QMCDecode让你的音乐自由播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认…...

.NET 磁盘BitLocker加密-技术选型览

在之前的文章中&#xff0c;我们花了大量的篇幅&#xff0c;从记录后端pod真实ip开始说起&#xff0c;然后引入envoy&#xff0c;再解决了各种各样的需求&#xff1a;配置自动重载、流量劫持、sidecar自动注入&#xff0c;到envoy的各种能力&#xff1a;熔断、流控、分流、透明…...