MySQL 锁的使用
MySQL 索引的最左前缀原则详解
大纲
最左前缀原则的介绍
最左前缀原则指的是:使用组合索引(联合索引)时,查询条件需要从索引的最左列开始匹配,并且不跳过索引中的列。如果跳跃某一列,索引将会部分失效 (这一列后面的字段的索引会失效)。比如,针对 A、B、C 三个字段建立了一个组合索引,那么在写一个 SQL 时就一定要提供 A 字段的查询条件,这样才能让组合索引生效。这是由于在建立 A、B、C 三个字段的组合索引时,MySQL 底层的 B+ 树是按照 A、B、C 三个字段从左往右去比较大小进行排序的,也就是说 B+ 树的索引结构依赖于从左到右逐层递进地有序搜索路径。如果查询条件中缺少了最左边的列,B+ 树将无法确定初始的搜索路径,从而无法利用索引进行高效查询。
MySQL 索引的底层数据结构详解
ElasticSearch 性能优化教程
ES 优化
索引优化:
- 映射(Mapping):合理设计索引映射,避免使用动态映射,并为每个字段明确指定数据类型。
- 字段类型:对于不需要全文搜索的字段,使用
keyword
类型而非text
类型。 - 合并(Merging):通过配置
index.merge
参数优化段合并,以减少 I/O 开销。 - 刷新间隔:调整
index.refresh_interval
参数,减少刷新频率以提高写入性能(默认是 1 秒,可以根据实际需要调整)。
查询优化:
- 缓存:利用 ES 的节点查询缓存和过滤器缓存来加速常见查询。
- 分片首选项:设置
preference
参数来避免每次查询都访问不同的副本,从而提高缓存命中率。 - 分页:避免深分页,使用
search_after
或scroll
来处理大量结果集。
OpenFeign 入门教程 - 新版篇
Consul 入门教程 - 新版篇
LoadBalancer 入门教程 - 基础篇
大纲
前言
Ribbon 停更
Netflix Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon 客户端组件提供一系列完善的配置项,如连接超时、失败重试等。简单的说,就是在配置文件中列出 Load Balancer(简称 LB)后面所有的机器,Ribbon 会自动地帮助用户基于某种规则(如简单轮询,随机连接等)去选择连接这些机器。开发者使用 Ribbon 很容易就可以实现自定义的负载均衡算法。截止 2024 年 1 月,Netflix Ribbon 一直处理维护模式,也就是处于停更状态,官方说明如下图所示: