MySQL系列之索引入门(上)

【MySQL系列】MySQL索引事务 MySQL数据库 索引和事务部分的内容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 阅读详情

前言

在我们的日常项目或产品研发/运行过程中,是否经常遇到查询效率问题?
——答:必须的呀
但凡遇到这类问题,甲方见了直叹气,乙方见了直摇头,恨不得亲自上阵了哟~

当Table中,数据积累到一定程度,一般考虑几个优化策略:

  • 横向拆表,分而治之
  • 纵向拆表,大而化小
  • 增加索引,寻找捷径
  • 优化SQL,探索最优
  • …等等

今天博主重点讲讲其中的索引(英文:index)是如何快速定位的。Let`s Go!

在这里插入图片描述


首先,我们了解一下,MySQL有哪些索引可供选择。

一、索引简介

1. 按逻辑划分
索引类型索引名称索引说明
KEY普通索引基本索引类型,值允许重复和空
UNIQUE唯一索引值必须唯一,允许空
PRIMARY主键索引唯一索引加强版,值不允许空
FULLTEXT全文索引可以对长文本值进行分词检索,值允许重复和空
2. 按物理划分
索引类型索引特征索引说明
聚簇索引B+树,表唯一基于主键形成Tree结构存储,包含每行记录
非聚簇索引基于聚簇索引创建,允许多个对主键索引,且包含聚簇索引key

在一定程度上,聚簇索引实现了全表数据的索引化存储,其主要基于主键完成的。因此主键一般不允许变更,否则变更导致的索引代价太高。而非聚簇索引又实现了对聚簇索引的进一步索引,当然也只对主键值进行索引,它也称为辅助索引。
在这里插入图片描述

基于上图,可以理解为,如果我们使用非聚簇索引列进行查询,会多一次B+Tree的扫描。所以如何合理使用,需结合业务进行优化。

3. 按影响字段划分
索引名称索引特征索引说明
单列索引单列值对单列进行索引,比如常见的primary
组合索引多列值对多列进行索引,以组合的形式提高查询效率

结语

综上,博主从逻辑、物理、影响字段三个维度,对索引进行了剖析并加以简述,我想各位盆友应该会一目了然。数据效率是业务发展的关键,也是我们日常面对客户必须要解决的关键环节。


在这里插入图片描述

MySQL 面试系列:MySQL 索引的面试题总结 索引是一种能帮助 MySQL 提高查询效率的数据结构。最左匹配原则也叫最左前缀原则,是 MySQL 中的一个重要原则,说的是索引以最左边的为起点任何连续的索引都能匹配上,当遇到范围查询(>、 阅读详情

相关推荐

【MySQL 系列】MySQL 索引篇

在 MySQL 中,索引是一种帮助存储引擎快速获取数据的数据结构,形象的说就是索引是数据的目录。它一般是以包含索引键值和一个指向索引键值对应数据记录物理地址的指针的节点的集合的清单的形式存在。

栗筝i的博客 4302

MySQL系列之索引入门(下)

通过上文,我想各位盆友已熟悉MySQL的索引分类及其含义,那么如何合理的使用呢?请继续围观此文,一探究竟!以上表述来自MySQL官方对explain用于解释SQL的执行过程和顺序。怎么使用呢?explain索引就像目录,快速检索需要的内容,有效的利用索引可以让应用性能更好,使用体验更佳。合理的创建索引,也需要经验的总结和积累。此技能是高性能开发必备。今天过完年了,新春第一天,祝大家开工大吉!

splendid_java的专栏 1560

10BASE-T1S协议中的PLCA机制:实现无碰撞网络传输的关键

本文深入解析了10BASE-T1S协议中的PLCA(物理层冲突避免)机制。作为IEEE 802.3cg标准的关键部分,PLCA通过循环调度与机会传递,从根源上避免了网络碰撞,为工业与汽车等场景提供了确定性的低延迟传输保障,是实现可靠实时通信的核心技术。

weixin_29250403的博客 209

【MySQL精通系列之四】【索引结构入门】

数据库索引

weixin_36165763的博客 264

4G+GNSS定位模块DX-CT511N-B:AT指令实战与多协议通信指南

本文详细介绍了4G+GNSS定位模块DX-CT511N-B的AT指令实战应用与多协议通信配置。内容涵盖TCP/UDP通信、MQTT协议集成、HTTP服务交互以及GNSS定位功能的深度解析,为开发者提供从基础指令到高级调试的完整指南,助力物联网设备开发。

hope8的博客 289

全局子程序 参数调用

为什么要子程序: 为了实现程序结构化,我们尽量使用不同功能的功能块来实现一些特定的功能, 子程序接口: 使用过程的注意事项,尤其是数组使用时的注意事项 从一个主程序中可以将参数传递到局部或全局子程序和函数中。 怎样传递参数有 2 种方式: 作为 IN 参数 变量值在主程序中保持不变。 这种传递方式也称为“ 值传递 (Call by Value)”。 作为 OUT 参数 子程序读取并更改该值,然后将新值写回到主程序中。 这种传递方式也称为“Call by Reference”。 举例说明 1 DEF MY

Eric_Yang1024的博客 1095

mysql 修改索引类型_测试开发必懂系列MySQL索引(入门篇)

说些闲话切入主题MySQL索引分类逻辑类型分类索引的其他创建方式(以下索引均指逻辑分类)MySQL索引入门说些闲话 MySQL数据库目前在各大互联网公司中基本上是使用频率最高的数据库,也基本上是QA小伙伴在日常测试过程中接触最多的数据库系统了吧。作为一名QA其实跟MySQL打交道的地方还挺多的,比如在功能测试时我们某些用例可能会通过查询数据库来验证用例的执行结果是否符合预期、比如在我们进...

weixin_39534759的博客 156

AI辅助发明专利撰写实战:30分钟高效生成高质量技术专利文档

在技术专利撰写领域,尤其是软件、算法或系统架构相关的发明专利,如何将创新的技术构思快速、规范地转化为符合《专利法》要求的申请文件,是许多开发者和技术团队面临的共同挑战。传统的人工撰写方式不仅耗时耗力,对撰写人的法律和技术双重背景要求极高,还容易因格式或术语不规范导致审查意见增多。本文将分享一套利用 AI 辅助工具,系统化、高效率地完成一篇高质量发明专利说明书撰写的实战流程。通过清晰的步骤拆解、可复制的提示词(Prompt)工程以及关键注意事项,即使是首次接触专利撰写的开发者,也能在短时间内掌握从技术方案梳理

子夜轻风 950

MySQL索引与性能优化入门:让查询提速的秘密武器【MySQL系列】

本文系统讲解MySQL索引优化知识体系,包括索引本质、常见类型(主键、唯一、组合等)及B+树原理。重点解析EXPLAIN执行计划分析、慢查询日志监控等优化工具,提供覆盖索引、分页优化等实用技巧,并指出常见误区。通过百万级用户查询案例,展示从索引创建到执行计划验证的完整优化流程,帮助开发者建立系统化的性能调优方法论。

程序员熊建锟。AI技术知名博主。优快云优质创作者(粉丝1W+)、腾讯云开发者先锋;阿里云专家博主;华为云“云享专家”、51CTO专家博主 1344

支付漏洞防护绕过的一种方式

放完包后就到了提交订单的地方,可以发现,金额确实小了很多,合理的搭配的话还可以更低,再次前进可以发现,金额确实是这么多,后面就不支付了,到此就结束了。也就是说数量可以为负数,但是金额不能为0或者0以下,有什么方法可以绕过这个限制吗,其实并不难,既然可以为负数,只是对金额不能为0或者负数做了限制。我们可以尝试拼接法,利用负数加上正数让他的值变得很低,但是又大于0就可以了,这里利用购物车的结算方法,随机加一些在购物车里。这里为了方便查看数据包,我这边商品的数量选择3,点击立即购买并抓包。

2301_80115097的博客 1528

最全的Hermes安装教程以及Hermes WebUI安装部署和配置指南

* 直接执行命令**

小石头的专栏 1074

MySQL从入门到精通(六):索引优化详解

本文详细介绍了MySQL索引的工作原理、类型、设计策略以及优化技巧。掌握这些知识将帮助你设计出更高效的数据库结构,提高查询性能,解决实际项目中的性能瓶颈问题。在下一篇文章中,我们将深入探讨事务管理事务的ACID特性事务隔离级别锁机制死锁预防与处理并发控制策略敬请期待!🚀关注我,不错过更多MySQL干货!🔔💬评论区留下你的问题,我们一起讨论!

m0_65382359的博客 369

Qt/C++音视频开发1-vlc解码播放

一、前言 最开始接触视频监控这块的时候,用的就是vlc作为解码的内核,主要是因为vlc使用简单方便,直接传入一个句柄即可,简单几行代码就可以实现一个视频流播放,很适合初学者使用,也推荐初学者用qt+vlc来做播放器,提供的接口还是非常友好的,而且门类特别多,想要获取媒体文件的各种信息比如宽高,设置宽高比等,直接调用接口函数传入参数就能设置。 所有用vlc做视频监控解码的人都会遇到一个问题,那就是鼠标事件被接管拦截了,不能识别鼠标事件,比如双击最大化等,这就很憋屈了,明明很好用的一个东西,怎么突然之间鼠标事件

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 4938

mysql 递归查找父节点_MySQL系列-第22篇:MySQL索引原理详解

Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。欢迎大家加我微信itsoku一起交流java、算法、数据库相关技术。这是Mysql系列第22篇。背景使用mysql最多的就是查询,我们迫切的希望mysql能查询的更快一些,我们经常用到的查询有:按照id查询唯一一条记录按照某些个字段查询对应的记录查找某个范围的所有记录(between and)对查询出来的结果排序my...

weixin_30086041的博客 323

万字长文带你由浅入深夯实ARM汇编基础——汇编指令及寻址方式最全梳理(附示例)!

见到汇编就害怕?读完这篇,扫除汇编拦路虎!!(示例丰富,可做手册,随手查阅!)

车载系统攻城狮 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MySQL索引系列:全文索引

什么是全文索引? 全文索引首先是 MySQL 的一种索引类型,也是搜索引擎的关键技术。 试想在1M大小的文件中搜索一个词,可能需要几秒,在100M的文件中可能需要几十秒,如果在更大的文件中搜索那么就需要更大的系统开销,这样的开销是不现实的。 所以在这样的矛盾下出现了全文索引技术,有时候有人叫倒排文档技术。 全文索引的作用是什么? 全文索引是将存储在数据库中的大段文本中的任意内容信息查找出来的技术。 既然是查找包含某些内容的文本,用 like + 通配符 或者正则表达式就可以实现模糊匹配,为什么还要全文索引?

@日月空@的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

MySQL系列之索引

此为MySQL专栏文章之一,讲解MySQL 索引。索引是帮助 MySQL 高效获取数据 的 数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查询算法,这种数据结构就是索引。优点:● 提高数据检索效率,降低数据库的IO成本● 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗缺点:● 索引列也是要占用空间的。

Java 技术专栏,从入门到精通,熟悉企业级开发 2302

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

面试中,MySQL 索引系列相关问题详解

面试中,MySQL 索引系列相关问题详解 文章目录面试中,MySQL 索引系列相关问题详解什么是索引?索引的分类按数据结构分类通过主键查询商品数据的过程通过二级索引查询商品数据的过程为什么 MySQL InnoDB 选择 B+tree 作为索引的数据结构?按物理存储分类按字段特性分类主键索引唯一索引普通索引前缀索引按字段个数分类联合索引什么时候需要 / 不需要创建索引?什么时候适用索引?什么时候不需要创建索引?有什么优化索引的方法?前缀索引优化覆盖索引优化主键索引最好是自增的防止索引失效总结结语 面试中,

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 6334

【MySQL入门·索引】13.3 删除索引

通过本文的讨论,我们深入了解了MySQL中删除索引的方法、注意事项以及索引的维护、选择与监控等方面的知识。在实际应用中,我们需要根据具体的业务需求和数据访问模式来合理设计和管理索引。定期审查现有索引的使用情况,删除不再需要的索引以释放存储空间和提高性能。在创建新索引时,要考虑列的选择性、查询的WHERE子句以及避免过度索引等因素。使用复合索引来优化涉及多个列的查询条件。利用执行计划、慢查询日志和性能监控工具来分析和优化索引的使用情况。

Python老吕的博客 5220

【MySQL系列】abc索引分析

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 2万+

MySQL索引系列--索引的类型

本文介绍MySQL的索引的类别。

IT利刃出鞘的博客 5548

【MySQL原理系列】- MySQL的索引

如果存储引擎不支持哈希索引,则可以模拟像InnoDB一样创建哈希索引在B-Tree基础上创建一个伪哈希索引,”伪“指仍用B-Tree进行查找,但是它使用哈希值而不是键本身进行索引查找需要做的就是在查询的WHERE中手动指定使用哈希函数,并维护哈希值不要使用SHA1() 和MD5() 作为哈希函数,因为其是是强加密函数,计算出来的哈希值很长,旨在最大限度消除冲突,但这里并不需要这样高的要求要避免冲突问题,当使用哈希索引进行查询的时候,必须在WHERE 条件中带入哈希值和对应列值。

m0_68383079的博客 1063

【MySQL系列】修改索引

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 1万+

【MySQL系列】-回表、覆盖索引真的懂吗

在面试时常会被问一些概念性的东西。这些内容其实在开发中比较少用,但是为了显示你的知识储备你必须学习。博主最近在考Mysql认证时,也常碰到这样的问题。整理MySQL概念输出这篇博文。

记录总结工作过往 1793

MySQL系列:索引

MySQL索引是一种数据结构,旨在提高数据查询速度。

天然玩家的博客 3397

MySQL 系列之索引

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质: 索引是数据结构。InnoDB存储引擎支持以下几种常见的索引:B+树索引、全文索引、哈希索引,其中比较关键的是B+树索引。

MichaelZ的博客 770
上一篇: MySQL系列之数据导入导出
下一篇: MySQL系列之索引入门(下)
一叶飞舟
一叶飞舟 新星创作者: Java技术领域 新星创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄16年 6566粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值