最近性能上实在是吃不消了,在考虑换数据库。看到网上一个比较一语点醒梦中人的说法是,关系型数据库毕竟是为了复杂关系设计和优化的。我们这个业务虽然有一些关系,但是不多,如果说强行用业务拆解成 kv 式的也不是拆不了,虽然说非常麻烦就是。。。比如业务偶尔还是会用外键 join ,如果自己实现的话就需要用业务保证约束,然后再自己实现个笛卡尔积之类的,想想都头大。。。但是话又说回来还是现在的搜索性能捉襟见肘了,还是得换。
上个月同事试了试时序数据库,说实话业务也不太合适,就强行上了试一试,感觉就是性能远未达到开发厂商标称的那么好,也可能是我们比较菜吧。
最近看了又有人说 hdf5 很香,我花了一个下午通读了一下 h5py 的文档。可能是因为这是个连接库的关系,也没讲什么底层的东西,在我看来就是单文件内实现了一个树状储存结构,我产生一个疑问就是这相比我直接在文件系统里构建一层一层的目录相当于它的 groups ,然后每个 dataset 对应到一个具体的文件里,这有什么区别呢? hdf 看起来似乎也没什么优势,首先用的人不多(相对于互联网产品来说),感觉不是久经检验的健壮业务。增量更新方面也没什么说法,应该是做不了。官方又没有异步支持,我普通存文件起码还能异步读写。。。还有就是全存一个系统里,万一哪天哪里写坏了整个数据库全挂了。。。。
也不支持关系型搜索,单纯 kv+落盘的话我是不是用 mongodb 也行,后者还多那么多缓存代码,我重复读热点的时候人家还有缓存。。。
有没有比较熟悉的朋友讲讲 hdf 适用什么场景啊,和文件系统比又有什么优势?