老男孩的成长之路|又会带来什么问题?,ES能为你解决什么问题( 二 )
ES引入会有什么样的问题字段类型无法修改、写入性能较低和高硬件资源消耗ES需要在创建字段前要预先建立Mapping , Mapping中包含每个字段的类型信息 , ES需要根据Mapping为字段建立合适的索引 。 由于这个Mapping的存在 , ES中的字段一旦建立就不能再修改类型了 。 ES在数据结构灵活度上高于MySQL但远不如MongoDB不支持事务,JOIN吃硬件ES的排序和聚合(Aggregation)操作会把几乎所有相关不相关的文档都加载到内存中 , 一个Query就可以很神奇地吃光所有内存 , 现在新的Lucene版本优化了基于硬盘的排序 , 但也仅当你使用SSD的情况下 , 才不会牺牲过多的搜索性能 。 其他的问题还包括 , 大量的增量写操作会导致大量的后台Merge , CPU和硬盘读写都会很容易达到瓶颈 。 ES确实在横向Scale方面做的很出色 , 但前提是有足够的预算买硬件 。 数据实时性每当有新增的数据时 , 就将其先写入到内存中 , 在内存和磁盘之间是文件系统缓存 , 当达到默认的时间(1秒钟)或者内存的数据达到一定量时 , 会触发一次刷新(Refresh) , 将内存中的数据生成到一个新的段上并缓存到文件缓存系统上 , 稍后再被刷新到磁盘中并生成提交点 。 因此 , 从Index请求到对外可见能够被搜到 , 最少要1秒钟的数据延时 。 不支持数据的权限管理总结ES香不香看你怎么用 。 有人用的很爽 , 有人用的很痛苦 。 用好了就少加班调索引 , 调sql 。 用不好就常加班调ES 。
优点:
1.高并发
2.容错能力比mg强 。 比如1主多从 , 主片挂了从片会自动顶上
3.满足大数据下实时读写需求 , 无需分库(不存在库的概念) 。
4.易扩展 。 分片数据自动均衡5.支持较复杂的条件查询 , groupby、排序都不是问题
缺点:
1.不支持事务
2.读写有一定延时
3.无权限管理
【老男孩的成长之路|又会带来什么问题?,ES能为你解决什么问题】4.吃硬件
推荐阅读
- 科技杂志社|系列看一加手机的后壳探索之路,从一加8
- 科技怪人|C++程序员的学习进阶之路之书籍篇
- 人走茶凉|青春版、荣耀X10 Max 发布,5G 普及之路再增俩“猛将”,荣耀30
- 科技行者|丰田的AI之路:不止于汽车
- 精选热点资讯|为创业团队提供投融资指导,厦门火炬高新区创业成长营开营
- [火星]来自外星的7岁男孩,预言2020年全球将面临灾难,如今他怎样了
- 『华为』余承东深夜放出狠话! 遭遇两轮制裁后: 最受伤的华为将迎来胜利之路
- 「软件」福昕软件过会!中国Adobe的资本进击之路|观澜财经
- 老男孩搞机|TWS,真无线蓝牙耳机性价比之王-omthing
- 极点商业评论|欠钱不还or腾讯被骗?“国民女神”老干妈的家族式成长难题