3-MySQL篇-2

简介: 本文详解MySQL索引核心知识:涵盖单列索引(普通、唯一、主键、全文)、组合索引(含左前缀原则)及空间索引;剖析B+树等底层结构,对比MyISAM(非聚簇)与InnoDB(聚簇)存储引擎差异;并说明非主键索引的回表查询机制。

6. 了解过Mysql的索引嘛 ?

MYSQL索引主要有 : 单列索引 , 组合索引空间索引 , 用的比较多的就是单列索引和组合索引 , 空间索引我这边没有用到过

单列索引 : 在MYSQL数据库表的某一列上面创建的索引叫单列索引 , 单列索引又分为

  • 普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。
  • 唯一索引:索引列中的值必须是唯一的,但是允许为空值
  • 主键索引:是一种特殊的唯一索引,不允许有空值
  • 全文索引: 只有在MyISAM引擎、InnoDB(5.6以后)上才能使⽤用,而且只能在CHAR,VARCHAR,TEXT类型字段上使⽤用全⽂文索引。

组合索引 : 在MYSQL数据库表的多个字段组合上创建的索引 , 称为组合索引也叫联合索引

  • 组合索引的使用,需要遵循左前缀原则
  • 一般情况下,建议使用组合索引代替单列索引(主键索引除外)

7. 索引的底层数据结构了解过嘛 ?

索引是在存储引擎中实现的,也就是说不同的存储引擎,会使用不同的索引

MyISAM和InnoDB存储引擎:只⽀支持B+ TREE索引, 也就是说默认使用BTREE,不能够更换

MEMORY/HEAP存储引擎:支持HASH和BTREE索引

8. MYSQL支持的存储引擎有哪些, 有什么区别 ?

MYSQL存储引擎有很多, 常用的就二种 : MyISAMInnoDB , 者两种存储引擎的区别 ;

  • MyISAM支持256TB的数据存储 , InnoDB 只支持64TB的数据存储
  • MyISAM 不支持事务 , InnoDB 支持事务
  • MyISAM 不支持外键 , InnoDB 支持外键

9. 什么是聚簇索引什么是非聚簇索引 ?

聚簇索引

在使用InnoDB存储引擎的时候, 主键索引B+树叶子节点会存储数据行记录,简单来说数据和索引在一起存储 , 这就是聚簇索引

非聚簇索引

在使用MyISAM存储引擎的时候, B+树叶子节点只会存储数据行的指针,简单来说数据和索引不在一起 , 这就是非聚簇索引

10. 在一个非主键字段上创建了索引, 想要根据该字段查询到数据, 需要查询几次 ?

需要查询二次

如果使用MyISAM存储引擎 , 会首先根据索引查询到数据行指针, 再根据指针获取数据

如果是InnoDB存储引擎 , 会根据索引查找指定数据关联的主键ID , 再根据主键ID去主键索引中查找数据

目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 缓存
Alibaba Cloud Linux 4 LTS 64位 Deb 版是什么系统镜像?兼容Debian和Ubuntu吗?
Alibaba Cloud Linux 4 LTS 64位Deb版是阿里云首个兼容Debian生态的LTS系统,深度适配Ubuntu 24.04,专为AI/深度学习优化。预装KeenTune智能调优框架、AI加速内核及kmod-fuse,支持百万IOPS与40GB/s缓存带宽,提供2025–2038年长期支持。(239字)
|
4月前
|
存储 NoSQL 算法
4-Redis篇-2
本文详解Redis集群架构与核心机制:采用哨兵集群(1主2从+3哨兵)保障高可用;对比主从复制、哨兵、Cluster分片三大方案;解析主从同步的全量/增量复制流程;说明Cluster基于16384哈希槽的分片存储原理;简述MULTI/EXEC等事务命令及实际使用情况。(239字)
235 6
|
4月前
|
Java 应用服务中间件 Maven
5-微服务篇-1
本文详解SpringBoot核心机制:①自动装配原理——通过@SpringBootApplication→@EnableAutoConfiguration→AutoConfigurationImportSelector→spring.factories加载条件化配置类;②启动流程三阶段:初始化、上下文创建、自动配置;③常用起步依赖、配置文件类型(properties/YAML)及加载优先级;④四种运行方式。
319 23
|
4月前
|
缓存 JavaScript 安全
一文告诉你 Windows 彻底卸载 OpenClaw+ClawHub+飞书机器人 完整版指南 删干净、不留痕迹、无后门 让疯狂燃烧的 token停下来
本文详解Windows下彻底卸载OpenClaw及ClawHub的完整流程:停止网关服务、全局卸载npm包、清理缓存与全部配置文件(含`.openclaw`等隐藏目录)、卸载ClawHub、验证命令失效,并同步删除飞书开放平台应用,确保零残留。
2420 2
一文告诉你 Windows 彻底卸载 OpenClaw+ClawHub+飞书机器人 完整版指南 删干净、不留痕迹、无后门 让疯狂燃烧的 token停下来
|
4月前
|
SQL JSON Java
2-SSM框架篇-3
本文详解SpringMVC核心机制:含11步标准执行流程、常用注解(@RequestMapping、@RequestBody等)及MyBatis关键知识点——#{}与${}区别、主键获取方式、字段名不一致的3种解决方案,助力Java Web开发深入理解与高效实践。(239字)
198 2
|
4月前
|
SQL 存储 关系型数据库
3-MySQL篇-3
本文详解MySQL索引核心概念:回表查询(先查索引再查主键)、覆盖索引(索引含所有查询字段,避免回表)、左前缀原则(联合索引最左匹配);并列举索引失效场景及建索引最佳实践。
194 0
|
4月前
|
缓存 Java 数据库连接
2-SSM框架篇-5
MyBatis缓存分两级:一级缓存基于SqlSession,默认开启;二级缓存基于Mapper Namespace,需手动启用——配置`cacheEnabled=true`并添加`<cache>`标签。可设置淘汰策略、刷新间隔等参数,提升查询性能。(239字)
155 0
|
4月前
|
存储 缓存 NoSQL
4-Redis篇-1
本文详解Redis在项目中的三大应用:热点缓存、业务数据存储(如验证码、排行榜)及分布式锁;涵盖5种基础数据类型、RDB/AOF双持久化机制、惰性+定期混合过期策略,以及8种内存淘汰策略。
243 19
|
4月前
|
缓存 NoSQL 关系型数据库
4-Redis篇-3
Redis与Memcached在数据结构、集群支持及持久化上差异显著;内存满时Redis可淘汰或报错;与MySQL一致性可通过删缓存+双写、MQ异步、过期策略等方案分级保障;缓存穿透用布隆过滤器,击穿靠预热、永不过期或加锁限流。(239字)
224 8
|
4月前
|
缓存 NoSQL 调度
4-Redis篇-4
本文详解Redis三大核心问题:缓存雪崩(大量key同时失效,需加随机过期时间)、热点数据保障(采用LFU淘汰策略)、分布式锁实现(基于SETNX,解决死锁、超时、归一、可重入及阻塞等问题),并附实战应用案例。
226 12

热门文章

最新文章