SpringBoot 自研分布式限流组件
MySQL 锁的使用
MySQL 索引的最左前缀原则详解
大纲
最左前缀原则的介绍
最左前缀原则指的是:使用组合索引(联合索引)时,查询条件需要从索引的最左列开始匹配,并且不跳过索引中的列。如果跳跃某一列,索引将会部分失效 (这一列后面的字段的索引会失效)。比如,针对 A、B、C 三个字段建立了一个组合索引,那么在写一个 SQL 时就一定要提供 A 字段的查询条件,这样才能让组合索引生效。这是由于在建立 A、B、C 三个字段的组合索引时,MySQL 底层的 B+ 树是按照 A、B、C 三个字段从左往右去比较大小进行排序的,也就是说 B+ 树的索引结构依赖于从左到右逐层递进地有序搜索路径。如果查询条件中缺少了最左边的列,B+ 树将无法确定初始的搜索路径,从而无法利用索引进行高效查询。
MySQL 索引的底层数据结构详解
Sentinel 进阶教程 - 整合篇(2024 年)
大纲
- Sentinel 入门教程 - 基础篇(2020 年)
- Sentinel 入门教程 - 中级篇(2020 年)
- Sentinel 入门教程 - 整合篇(2020 年)
- Sentinel 进阶教程 - 基础篇(2024 年)
- Sentinel 进阶教程 - 中级篇(2024 年)
- Sentinel 进阶教程 - 整合篇(2024 年)
前言
本文主要介绍 Sentinel 整合主流框架,比如 OpenFeign、Spring Cloud Gateway 等。
ElasticSearch 性能优化教程
ES 优化
索引优化:
- 映射(Mapping):合理设计索引映射,避免使用动态映射,并为每个字段明确指定数据类型。
- 字段类型:对于不需要全文搜索的字段,使用
keyword
类型而非text
类型。 - 合并(Merging):通过配置
index.merge
参数优化段合并,以减少 I/O 开销。 - 刷新间隔:调整
index.refresh_interval
参数,减少刷新频率以提高写入性能(默认是 1 秒,可以根据实际需要调整)。
查询优化:
- 缓存:利用 ES 的节点查询缓存和过滤器缓存来加速常见查询。
- 分片首选项:设置
preference
参数来避免每次查询都访问不同的副本,从而提高缓存命中率。 - 分页:避免深分页,使用
search_after
或scroll
来处理大量结果集。
Sentinel 进阶教程 - 中级篇(2024 年)
大纲
- Sentinel 入门教程 - 基础篇(2020 年)
- Sentinel 入门教程 - 中级篇(2020 年)
- Sentinel 入门教程 - 整合篇(2020 年)
- Sentinel 进阶教程 - 基础篇(2024 年)
- Sentinel 进阶教程 - 中级篇(2024 年)
- Sentinel 进阶教程 - 整合篇(2024 年)
前言
官方资源
版本说明
在本文的所有案例中,各个组件统一使用以下版本:
组件 | 版本 | 说明 |
---|---|---|
Spring Boot | 3.2.0 | |
Spring Cloud | 2023.0.0 | |
Spring Cloud Alibaba | 2022.0.0.0 | |
Sentinel Dashboard | 1.8.7 |