Ch03-MySQL 之 内存结构
October 30, 2021
Buffer Pool
...Buffer Pool
...Rule-Based Optimization 基于规则的优化器 RBO 规则 说明 谓词重写 LIKE 规则,BETWEEN-AND 规则,IN 转 OR 规则,IN 转 ANY 规则,OR 转 ANY 规则,ALL/ANY 转聚合,NOT 规则,OR 转 UNION 规则 谓词预处理 1 < a => a > 1 , 10 != id => id != 10 谓词下推 t1.id = 1 t1 left join t2 on t1.id = t2.id => t1 left join t2 on t1.id = t2.id and t1.id = 1 列裁剪优化 常量传递 表达式计算 参考文献 # 数据库查询优化器,RBO 优化规则介绍及示例
Elasticsearch 之 选举
...Elasticsearch 之线程池。
...Elasticsearch 之 Http
...更新操作也是写操作。Elasticsearch 在创建新文档时,Elasticsearch 将为该文档分配一个版本号。对文档的每次更改都会产生一个新的版本号。当执行更新时,旧版本在.del 文件中被标记为已删除,并且新版本在新的分段中编入索引。旧版本可能仍然与搜索查询匹配,但是从结果中将其过滤掉。
...在 Elasticsearch 中,为了让插入的让数据更快的被检索使用。用一句话来概括就是”开新文件”。但是从另一个方面看,开新文件也会给服务器带来负载压力。因为默认每 1 秒,都会有一个新文件产生,每个文件都需要有文件句柄,内存,CPU 使用等各种资源。一天有 86400 秒,设想一下,每次请求要扫描一遍 86400 个文件,这个响应性能绝对好不了。为了解决这个问题,Elasticsearch 引入了 Merge 操作。
...删除操作是也是写操作。
...Elasticsearch 的 Search 操作包含两个阶段,一个是 QueryPhase,另一个是 FetchPhase。QueryPhase 在初始查询阶段,查询会广播到索引中每一个分片副本 (主分片或副分片)。每个分片在本地执行搜索并构建一个匹配文档的优先队列(优先队列是一个存有 topN 匹配文档的有序列表,即 doc id。优先队列大小为分页参数 from + size),注意该队列中并没有取具体的数据。FetchPhase 会根据获取到的 doc id 向对应的节点依次发送 GET 请求,获取结果,然后合并,聚合,排序最终返回结果。
...Elasticsearch 之 Put,不过与其说是 Elasticsearch 的操作流程,倒不如说是单个 Lucene 索引操作流程。
...