ElasticSearch和普通数据库存储

这取决于你需要ElasticSearch做什么?首先每个数据库都有自己的权衡,ElasticSearch支持大数据的扩展,灵活的单个对象的存储和快速搜索查询。但是它的代价是牺牲多表连接,事务和延迟。

ES只是一个搜索引擎,适合存储一些(有限的)静态数据!而MySQL是个关系数据库啊!在分布式系统中常用ES作为前端静态数据存储,最终的数据存储都是在MySQL里面的。并且ES都是更新频率很低的数据,因为ES更新数据会引起整个ES性能低下。

ElasticSearch不支持原子事务,如果某处出现错误,不会回滚更改。这对于银行系统是不可接受的。比如银行转账,你必须同时更新同步多个表。ES写入数据后,需要0.5秒左右的时间才能被查询到。但是ES 搜索速度比mongo等数据库更快更好。

ES 没有 ORM,所以的代码里基本上就是查询的 JSON Query 满天飞,非常乱不说,还容易出错。ES是倒排索引,数据库是Btree索引。所以ES是写入慢,读取快。数据库是写入快,读取慢。

对于很简单的 SQL 操作,ES 也没有很好的操作方式。比如说 select * from xxx 这么简单的操作,ES 是不支持的。ES 最多返回 10000 条数据,所以你必须自己用 cursor 封装一个读取的操作才能获取所有数据。

社区和公司内也有其他团队把 ES 应用于 OLAP 分析、文档数据库等场景,有需要的团队可结合场景需求评估测试。由于不支持事务,以及在建立索引方面的计算 / 存储成本,ES 并不适合于 OLTP 及 离线日志数据处理等场景。

其实是因为elasticsearch倒排索引,导致回表性能本来就很难优化。并且,elasticsearch对于查询缓存,没有做很多优化导致的,直接用单id查询es性能也是极好的,因为做了优化。

ES 也不是一个很好的文档数据库,对于数组的 append 操作并不直接支持,需要很复杂的操作。而且ElasticSearch没有安全机制。你必须自己提供安全保障。

ES 本质上是一个倒排索引加上半吊子的 MongoDB,虽然用作全文索引非常优秀,但是直接当做主库用还是欠缺不少支持的。

参考文章:

https://baijiahao.baidu.com/s?id=1721820719672976775&wfr=spider&for=pc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、基于Spring Boot的社区论坛项目源码+数据库+项目说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Spring Boot的社区论坛项目源码+数据库+项目说明.zip # WeCommunity > 微博、微信、微X......各种微,我们也跟上潮流叫微社区,英文名是 WeCommunity!是不是和微信(WeChat)很像? 微社区是一个用户交流平台,类似论坛,提供有:帖子管理、评论、关注、点赞、搜索、私信、数据统计等功能。 项目目前部署在阿里云1核2G云服务器上,所有的组件都是单机模式运行。 ### 依葫芦画瓢的项目架构图 ![项目架构设计图](https://i.loli.net/2020/07/01/umXATrRW2PCLhEI.png "项目架构设计图") ### 功能描述 1. 用户管理   用户可以注册、登陆、退出,修改头像,查看某个用户的主页,其包括某个用户的关注、粉丝、获得的点赞数、发布的帖子,用户自己能查看自己发表的评论。 2. 帖子管理   普通用户可以发布帖子、修改帖子,管理员可以删除帖子、恢复删除的帖子,版主可以将帖子置顶/取消置顶、加精华/取消加精华。 3. 关注   用户可以关注/取消关注某个用户,假如A关注了B,那么A的关注列表中就有了B,B的粉丝列表中就有了A。 4. 评论   用户可以对帖子进行评论,还可以对评论进行回复。 5. 点赞   用户可以对帖子、评论进行点赞。 6. 系统通知   某个用户评论、点赞了帖子,或者关注了某个用户,那么被评论、点赞、关注的用户会收到一条通知。目前系统中有3种通知:评论通知、点赞通知、被关注通知。 7. 数据统计   管理员可以查看网站指定日期范围的UV(独立访客)、DAU(日活跃用户)数据。 8. 私信   用户可以对网站内的其他用户发送私信,双方互发消息,只有他们自己能看到自己的私信。 9. 定时调度   每个帖子都有个权重分,影响帖子的展示排名,定时调度主要是定时更新帖子的权重。 10. 搜索   搜索系统使用Elasticsearch实现,支持对帖子标题、帖子内容的搜索。 ### 技术选型 - Spring Boot - SpringMVC - Spring - MyBatis3、通用mapper - Spring Security:安全框架 - Redis:缓存及数据存储 - Kafka:消息队列 - Elasticsearch-6.3.0:分布式搜索引擎 - Quartz:定时调度框架 - Nginx - Thymeleaf:模板引擎 - Caffeine:Java本地缓存库 - MySQL - 七牛云:第三方文件存储服务 ### 各个功能模块所对应的技术点 ![功能模块对应的技术点](https://i.loli.net/2020/07/01/u3DRnvrxfUNKhtc.jpg) ### 界面设计 ![主页](https://i.loli.net/2020/07/01/VbQYPd9wvWzxjy8.jpg "主页") ![帖子发布](https://i.loli.net/2020/07/01/ANeDU75GaMB36ZT.jpg "帖子发布") ![私信列表_私信详情](https://i.loli.net/2020/07/01/p6HQtoPlJXNGdwz.jpg "私信列表_私信详情") ![系统通知_](https://i.loli.net/2020/07/01/mbvtnlCgZyYWqLS.jpg "系统通知_") ### 文件说明 - wecommunity.sql:数据库文件 - wecommunity文件夹:Maven 项目源码 - static文件夹:前端静态资源,需独立部署 ### 本地开发运行部署 - 下载zip直接解压或安装git后执行克隆命令 `git clone https://github.com/AatroxC/WeCommunity.git` - 安装各组件并启动:Redis、ZooKee

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值