This commit is contained in:
by931
2022-09-06 22:30:37 +08:00
parent 66970f3e38
commit 3d6528675a
796 changed files with 3382 additions and 3382 deletions

View File

@@ -260,7 +260,7 @@ function hide_canvas() {
<h4>ElasticSearch 应用</h4>
<p>ElasticSearch 对搜索的支持非常好,但是和 NoSQL 数据库一样,对事务、一致性等的支持较低。</p>
<p>下面是一个实际开发中,常见的数据库-索引-缓存系统架构图:</p>
<p><img src="assets/Ciqc1F7-68eAeYw2AAF83MZQ2m0681.png" alt="25.png" /></p>
<p><img src="assets/Ciqc1F7-68eAeYw2AAF83MZQ2m0681.png" alt="png" /></p>
<p>可以看到ElasticSearch 一般是作为持久性数据库的辅助存储,是和 SQL &amp; NoSQL 数据库一起使用,对外提供索引查询功能。关系型数据库保证数据更新的准确性,在关系型数据库更新以后,通过 binlog 同步结合消息队列分发的方式,来更新文件索引,提供一致性保证。</p>
<h4>ELK stack</h4>
<p>ElasticSearch 是由 Elastic 公司创建的,除了 ElasticSearchElastic 公司还有另外两款产品,分别是 Logstash 及 Kibana 开源项目,这三个开源项目组合在一起称为 ELK stack。</p>
@@ -326,7 +326,7 @@ Good / / friends / / should / / help / / each / / other / .</p>
</tbody>
</table>
<p>具体到数据结构的实现,可以通过实现一个字典树,也就是 Trie 树,对字典树进行扩展,额外存储对应的数据块地址,定位到具体的数据位置。</p>
<p><img src="assets/CgqCHl77Do-AXYgbAABfeRIU95w684.png" alt="3.png" /></p>
<p><img src="assets/CgqCHl77Do-AXYgbAABfeRIU95w684.png" alt="png" /></p>
<h4>对比 B+ 树</h4>
<p>MySQL InnoDB 引擎的索引实现是基于 B+ 树,那么同样是索引,倒排索引和 B+ 树索引有哪些区别呢?</p>
<p>严格地说这两类索引是不能在一起比较的B+ 树描述的是索引的数据结构,而倒排索引是通过索引的组织形式来命名的。比如我们上面的例子中,倒排指的是关键词和文档列表的结构关系。</p>