热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

elasticsearchmongodb写入速度

本文主要介绍关于elasticsearch,mongodb,搜索引擎的知识点,对【Elasticsearch和MongoDB对比】和【elasticsearchmongodb写入速度】有兴趣的朋友可

本文主要介绍关于elasticsearch,mongodb,搜索引擎的知识点,对【Elasticsearch和MongoDB对比】和【elasticsearch mongodb写入速度】有兴趣的朋友可以看下由【西京刀客】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的软件架构/技术选型,# MongoDB相关技术问题。

elasticsearch mongodb写入速度

文章目录 Elasticsearch和MongoDB对比关于 ElasticsearchElasticsearch应用场景 关于 MongoDBMongoDB优点mongodb适用场景 Elasticsearch和MongoDB对比Elasticsearch和MongoDB 开源许可协议 参考

Elasticsearch和MongoDB对比 关于 Elasticsearch

官网:https://www.elastic.co/cn/elasticsearch/

elasticsearch mongodb写入速度


Elastic is the leading platform for search-powered solutions. We accelerate results that matter.
Elastic是搜索解决方案的领先平台。我们加速了重要的结果。

ElasticSearch(简称ES)是一个开源的高扩展的分布式全文检索引擎;它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器;可以处理PB级别的数据。 是当前流行的企业级搜索引擎。

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

官方说明:
Elasticsearch 是什么?
简单来说,我们的目标是帮助每个人更快地找到所需内容,从需要通过内网获取文档的员工,到在网上购物寻找适合自己鞋子的客户。 但从更技术的角度来说,大致描述如下:

Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

Elasticsearch应用场景

Elasticsearch 的应用场景
参考URL: https://www.bilibili.com/video/BV1bS4y1K7Ru

elasticsearch mongodb写入速度

关于 MongoDB

官网:https://www.mongodb.com/
MongoDB中文社区:https://mongoing.com/

MongoDB最大的特点是表结构灵活可变,字段类型可以随时修改。MongoDB中的每一行数据只是简单的被转化成Json格式后存储,因此MongoDB中压根没有MySQL中表结构这样的概念,你可以直接简单粗暴的将任意结构的数据塞入同一个表中,压根不必考虑表结构的限制,更不必像MySQL一样因为要修改数据表结构而大费周折。

MongoDB不需要定义表结构这个特点给表结构的修改带来了极大的方便,但是也给多表查询、复杂事务等高级操作带来了阻碍。因此,如果你的数据的逻辑结构非常复杂,经常需要进行复杂的多表查询或者事务操作,那显然还是MySQL这类关系型数据库更合适。

MongoDB很适合那些表结构经常改变,数据的逻辑结构没又没那么复杂不需要多表查询操作,数据量又比较大的应用场景。

MongoDB优点 速度:MongoDB比一般的关系型数据库快很多,作为面向文档的NoSQL数据库,MongoDB可以通过索引使访问文档变得很容易而且快速分片:MongoDB另外一个优势是允许用户存储大量的数据,其通过分片的方式将数据分发到多个服务器上。灵活性:因为MongoDB是非结构化的数据库系统,而且多种数据类型,所以不需要像关系型数据那样,进行特别的表结构设计,存储数据更加灵活分布式:MongoDB数据库默认支持分布式,内带分布式的解决方案 mongodb适用场景

MongoDB应用场景:https://hevodata.com/learn/mongodb-use-case/

传统的关系型数据库在解决三高问题上的力不从心。

何为三高?

High performance - 对数据库高并发读写的需求。Huge Storage - 对海量数据的高效率存储和访问的需求。High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求。MongoDB可以完美解决三高问题。

选择MongoDB的场景总结:

数据量大读写操作频繁数据价值较低,对事务要求不高

归纳了MongoDB一些比较明显的特征后,我们可以知道MongoDB的一些适用场景。

在MongoDB官网也会列举了MongoDB的适用场景:

1)网站实时数据:MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及
高度伸缩性。
2)数据缓存:由于性能很高,MongoDB 也适合作为信息基础设施的缓存层。在系统重启之后,由 MongoDB
搭建的持久化缓存层可以避免下层的数据源过载。
3)大尺寸、低价值数据存储:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很
多时候程序员往往会选择传统的文件进行存储。
4)高伸缩性场景:MongoDB 非常适合由数十或数百台服务器组成的数据库。MongoDB 的路线图中已经包
含对 MapReduce 引擎的内置支持。
5)对象或 JSON 数据存储:MongoDB 的 BSON 数据格式非常适合文档化格式的存储及查询

MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例。

游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析视频直播,使用 MongoDB 存储用户信息、礼物信息等
… Elasticsearch和MongoDB对比 MongoDBElasticSearch备注定位(文档型)数据库(文档型)搜索引擎(文档型)搜索引擎资源占用一般高mongo使用c++, es使用Java开发写入延迟低高es的写入延迟默认1s, 可配置, 是要牺牲一些东西全文索引支持度一般高es本来就是搜索引擎支持的数据量PB+TB+ ~ PB两者支持的量并不好说的太死, 都支持分片和横向扩展, 但是相对来说MongoDB的数据量支持要更大一点性能非常好好mongo使用c++, es使用Java开发索引结构B树LSM树es追求写入吞吐量, MongoDB读写比较均衡操作接口TCPRestful(Http)

MongoDB 默认会使用60%的系统内存,一般至少也要用到1GB缓存。

MongoDB和Elasticsearch都属于文档型数据存储,两者的很多功能和特性高度重合, 但其实两者定位完全不同。

看名字elasticSEARCH, mongoDB. 相当的明显,一个是SearchEngine,一个是Database, 没有可比性。

MongoDB 是 文档型数据库, 提供 数据存储和管理服务。
MongoDB作为一个数据库产品, 是拥有源数据管理能力的。MongoDB是一个全功能的数据库,主要应用于增删改查类型的实时交互场景。有非常多的系统只用MongoDB作为唯一的后端数据库,但是你几乎找不出来一个应用是完全用Elastic作为后端的。

Elasticsearch 是搜索服务, 提供 数据检索服务。
Elasticsearch已经超越了其最初的纯搜索引擎的角色,现在已经增加了分析和可视化的特性——但是它的核心仍旧是一个全文搜索引擎
Elastic最强的是全文搜索场景,后面实现基于Lucene。它最大的问题就是索引更新有延迟,默认是一分钟。 所以一般不能用来作为交互应用如手机端或者PC端应用。通常大家都是用一个DB+Elastic组合来使用。
MongoDB的全文搜索功能虽然有,但是很多时候达不到业务要求。所以很多人也会用MongoDB + Elastic 的组合方式。

简单来说,如果你的场景是只读,并且能够接受一定的数据延迟(非最新的数据),那么可以考虑Elastic。如果你的场景有实时写入实时更新,通常MongoDB会是更好的选择。

ES在数据结构灵活度上高于MySQL但远不如MongoDB。ES的缺点还不止这些,自动建立索引使得ES的写入性能也收到了影响,要明显低于MongoDB。对于同样的数据ES占用的存储空间也要明显大于MongoDB(建那么多索引能不占空间吗?),对硬件资源的消耗也是非常厉害,大数据量下64G内存+SSD基本是标配,算得上是数据库中的贵族服务。

ES绝对是一款优秀的搜索引擎,在模糊匹配、全文搜索、复杂检索等方面相比mongodb拥有更大的优势。
ES是Java编写,通过RESTFul接口操作数据。Mongodb是C++编写,通过driver操作数据。

Elasticsearch和MongoDB 开源许可协议

【IT老齐166】MongoDB、Elastic全家桶还能免费用吗,5分钟带你了解开源协议
参考URL: https://www.bilibili.com/video/BV1CY4y1z73g

MongoDB 早期使用GPL协议, Elasticsearch和MongoDB现在都使用SSPL许可协议。

elasticsearch mongodb写入速度

参考

ES MongoDB MySQL应用场景
参考URL: https://zhuanlan.zhihu.com/p/387891359
MongoDB 高手课
参考URL: https://time.geekbang.org/course/detail/100040001-200159

本文《Elasticsearch和MongoDB对比》版权归西京刀客所有,引用Elasticsearch和MongoDB对比需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • Leetcode学习成长记:天池leetcode基础训练营Task01数组
    前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • 传统上,Java 的 String 类一直使用 char 数组来存储字符数据。然而,在 Java 9 及更高版本中,String 类的内部实现改为使用 byte 数组。本文将探讨这一变化的原因及其带来的好处。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
author-avatar
郭绍玲刚珍雅瑜_658
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有