Administrator
发布于 2026-01-12 / 5 阅读
0

面鸭突击30之Day1

学前导航,遇到难点不懂点多往前走一步,搜搜记记,相信收获总是大于付出的,加油!

1.MySQL 的存储引擎有哪些?它们之间有什么区别?

mysql的存储引擎是插拔的形式挂载在mysql的内核上的,支持多种引擎的方式,常见的引擎有innoDB、MyISAM、NDB、Memory、Archive等,5.5.5版本之前默认是MyISAM的存储引擎、5.5.5和之后的版本默认以innoDB做存储引擎 主要回答点是:innoDB和MyISAM的区别 区别:1)innoDb支持事务、,MyISAM不支持事务 2)innoDb支持消息崩溃恢复(redo,undo日志),MyISAM不支持 3)innoDb的b+树的聚簇索引的叶子节点存储的是索引和数据值,MyISAM的索引存储的是索引信息和数据的物理地址 4)innoDb占用的空间大,支持行级锁上限制64t。MyISAM占用空间小,只支持表级锁,适合临时表,或者读多的场景(数仓,博客等读多写少的系统),现在基本没用,上限制256t

image-20260112下午55831977.png

image-20260112下午55439502.png

2.MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?

聚簇索引与非聚簇索引有的区别是b+树对应叶子节点存储的值差别。 聚簇索引的叶子节点存储的是主建值和完整的数据行; 非聚簇索引存储的是二级索引和主建id 有几个问题需要注意: 1.范围查询的支持和回表的注意 2.索引覆盖避免回表 3.主键自增的好处和坏处,为什么?为什么不推荐varchar做主键? 可以使用分段自增,加密自增 ID 优点:适配 InnoDB 聚簇索引的 B + 树结构,实现有序追加插入,避免页分裂和数据碎片,提升插入 / 查询效率,减少存储开销; 缺点:插入性能下降、数据碎片累积、非聚簇索引膨胀、查询效率降低,同时增加业务层的维护开销

3.MySQL 的索引类型有哪些?

索引性质:1.全文索引(分词之后的倒排索引),2.联合索引(考虑最左匹配原则),3.主键索引(唯一非空,没创建默认创建6字节的row_id)、4.唯一索引(列值不重复,允许多个null)、5空间索引:r树的空间索引 数据结构:1.b+树索引(排序、范围、树低,分布均匀)、2.hash索引(随机冲冲突无序) 3、全文索引(分词之后的倒排索引)。4.空间索引(基于r树实现) 存储方式:聚簇索引、非聚簇索引 拓展: 1.全文索引和空间索引解析 全文索引和like '%key%'的区别 2.b+树三层可以存储多少数据 3.空间索引用于什么场景,r树的结构是怎样的? 4.最左前缀的细节,联合索引是怎么创建的,b+树存储和比较的值 是咋样的?

拓展:java8 java17 java 21新特性

版本

发布年份

版本类型

核心亮点

企业选型优先级

适用场景

Java 8

2014

LTS

Lambda、Stream API、新日期时间 API、Optional

中等(逐步淘汰)

老项目维护、低版本依赖项目、小型简单应用

Java 17

2021

LTS

密封类、Records 类、模式匹配、安全性增强

高(当前主流)

企业新项目、微服务、中间件、追求稳定兼容

Java 21

2023

LTS

虚拟线程、Switch 模式匹配、有序集合 API

高(未来主流)

高并发应用、IO 密集型微服务、追求性能提升

附件信息:day1-mysql的存储引擎.xmind