数据存储是现在的一个热点话题,互联网时代各种存储框架层出不穷,眼花缭乱,比如传统的关系型数据库:Oracle、MySQL。新兴的NoSQL:HBase、Cassandra、Redis。全文检索框架:ES、Solr等。
如何为自己的业务选取合适的存储方案,相信大家都思考过这个问题。本文简单聊聊小编自己对于Mysql、HBase、ES的理解。希望能和大家一起探讨进步,有不对的地方也欢迎系小伙伴们指出。
数据存储方式
如果我们想要知道有哪些文档含有you这个关键字,首先可以创建一个倒排索引,格式如下。
我们把前面的部分叫做dictionary(字典),里面的每个单词叫做term,后面的文档列表叫做psoting-list,list中记录了所有含有该term的文档id。两个组合起来就是一个完成的倒排索引(Inverted Index),能够看出,假如需要查找含有“you”的文档时,根据dictionary然后找到对应的posting-list即可。
而全文检索中,创建Inverted Index是最关键也是最耗时的过程,而且真正的Inverted Index结构也远比图中展示的复杂。不仅需要对文档进行分词,ES里中文可以自定义分词器,还要计算TF-IDF。方便评分排序,当查找you时,评分决定哪个doc显示在前面,也就是所谓的搜索排名。压缩操作,每接收一个document,ES就会将其信息更新在倒排索引中。
从这里我们就可以看出ES和MySQL、HBase的存储还是有很大的区别,而且ES不仅包含倒排索引。默认同时还会把文档doc存储起来,所以当我们使用ES时,也能拿到完整的文档信息。所以某种程度上,感觉就像在使用数据库一样。但是也可以配置不存储文档信息,这时只能根据查询条件得到文档id,并不能拿到完整的文档内容。
MySQL行存储的方式比较适合OLTP业务,列存储的方式比较适合OLAP业务,而HBase采用了列族的方式平衡了OLTP和OLAP。支持水平扩展,如果数据量比较大、对性能要求没有那么高、并且对事务没有要求的话。HBase也是个不错的考虑。ES默认对所有字段都建了索引,所以比较适合复杂的检索或全文检索。
关于数据存储的知识,本篇文章就介绍到这里了,其实,小编还写了有关数据存储的其他知识的文章,对此感兴趣的小伙伴们,还不赶快去看一下吗。
版权声明:本文为Yun88网的原创文章,转载请附上原文出处链接及本声明。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!



抖音算法推流核心指标是互动率而非GMV。天志互联直播抽盒系统从订单秒级上屏、一键拆盒、氛围引爆三个维度拉高互动率,驱动算法推流的正循环。

从"换皮联名"到"游戏化体验共创"——拆解彩棠敦煌联名案例的壁画修复小游戏设计逻辑、奶茶品牌联名翻车教训和中小品牌三条低成本高ROI的IP联名路径。

低代码时代品牌游戏化运营体系的"乐高式"搭建指南——从选模板、搭积分闭环、数据迭代到多活动并行管理和团队交接的全流程实操方法。

一个快消品牌用游戏化方法三个月救活240个死群的完整复盘——从签到排行榜、互动任务、习惯养成到赛季制防疲劳的六周运营节奏拆解。

游戏化社交裂变的三个底线原则深度拆解——让转发不像广告、让奖品有炫耀价值、给用户不转发的自由,加3%超级用户识别策略和三个常见翻车点避坑指南。