网站外包公司,百度推广服务,福田专门做网站推广公司,技术支持 英铭网站建设文章目录 ES的优势及分布式开发的好处1.ES的优势1.1 优势概述1.2 相关问题1#xff09;为什么需要 Elasticsearch#xff1f;MySQL 不行吗#xff1f;2#xff09;SQL检索的问题#xff1a;3#xff09;ES检索快的原理 2.分布式开发的好处与坏处 ES的优势及分布式开发的好… 文章目录 ES的优势及分布式开发的好处1.ES的优势1.1 优势概述1.2 相关问题1为什么需要 ElasticsearchMySQL 不行吗2SQL检索的问题3ES检索快的原理 2.分布式开发的好处与坏处 ES的优势及分布式开发的好处
1.ES的优势
1.1 优势概述
支持多种数据类型非结构化数值地理信息。简单的 RESTful API天生的兼容多语言开发。提供更丰富的分词器支持热点词汇查询。近实时查询Elasticsearch 每隔 1s 把数据存储至系统缓存中且使用倒排索引提高检索效率。支持相关性搜索可以根据条件对结果进行打分。天然分布式存储使用分片支持更大的数据量。
1.2 相关问题
1为什么需要 ElasticsearchMySQL 不行吗 MySQL 也可以但不擅长 传统关系型数据库(如 MySQL )在大数据量下查询效率低下 模糊匹配有可能导致全表扫描。 MySQL 全文索引只支持 CHAR VARCHAR 或者 TEXT 字段类型不支持分词器。
2SQL检索的问题
慢全表扫描结果有限搜索“明月也希望看到明,月的结果…无法得到文档与搜索条件的相关性
3ES检索快的原理 将磁盘里的东西尽量搬进内存减少磁盘随机读取次数 (同时也利用磁盘顺序读特性)结合各种压缩算法用及其苛刻的态度使用内存。精打细算每一块内存、磁盘空间、用诡谲的位运算加快处理速度。 为了能够快速定位到目标文档ES 使用倒排索引技术来优化搜索速度虽然空间消耗比较大但是搜索性能提高十分显著。为了能够在数量巨大的 terms 中快速定位到某一个 term同时节约对内存的使用和减少磁盘 io 的读取lucene 使用 “term index - term dictionary - postings list” 的倒排索引结构通过 FST 压缩放入内存进一步提高搜索效率。为了减少 postings list 的磁盘消耗lucene 使用了 FoR Frame of Reference技术压缩带来的压缩效果十分明显。ES 的 filter 语句采用了 Roaring Bitmap 技术来缓存搜索结果保证高频 filter 查询速度的同时降低存储空间消耗。在联合查询时在有 filter cache 的情况下会直接利用位图的原生特性快速求交并集得到联合查询结果否则使用 skip list 对多个 postings list 求交并集跳过遍历成本并且节省部分数据的解压缩 cpu 成本。
2.分布式开发的好处与坏处
好处
1、增大系统容量。我们的业务量越来越大而要能应对越来越大的业务量一台机器的性能已经无法满足了我们需要多台机器才能应对大规模的应用场景。所以我们需要垂直或是水平拆分业务系统让其变成一个分布式的架构。
2、加强系统可用。我们的业务越来越关键需要提高整个系统架构的可用性这就意味着架构中不能存在单点故障。这样整个系统不会因为一台机器出故障而导致整体不可用。所以需要通过分布式架构来冗余系统以消除单点故障从而提高系统的可用性。
3、因为模块化所以系统模块重用度更高
4、因为软件服务模块被拆分开发和发布速度可以并行而变得更快
5、系统扩展性更高
6、团队协作流程也会得到改善
坏处
1、架构设计变得复杂尤其是其中的分布式事务
2、部署单个服务会比较快但是如果一次部署需要多个服务部署会变得复杂
3、系统的吞吐量会变大但是响应时间会变长
4、运维复杂度会因为服务变多而变得很复杂
5、架构复杂导致学习曲线变大
6、测试和查错的复杂度增大
7、技术可以很多样这会带来维护和运维的复杂度
8、管理分布式系统中的服务和调度变得困难和复杂 资料来源 1、Elasticsearch为什么搜索这么快 - 知乎 (zhihu.com) 2、分布式优缺点_分布式的优点-CSDN博客