内存数据库的数据相关整理(postgresql)

前提:数据库采用的是postgresql,当前解决方案是直接修改数据库相关数据,现在想通过内存数据库来修改数据库相关数据以提高io速度。

当前流程图大概如下:

第一步:首先将数据库中的数据写入内存,

第二步:c端需要查询的时候,如果有数据则直接从内存中查询,如果没有数据则直接从数据库中查,顺便把查到的数据再次写入缓存,

第三步:c端需要增删改的时候直接对数据库进行操作,同时删除相关缓存数据。

-------------------------------------------------

改进后的流程图大概如下,就是跟数据库的的交互变掉了,其他流程不变

即在启动服务器的时候先将数据库中的数据写入到内存中,以后的数据操作相关在这边进行操作,然后在任何时候(一般都指服务器承载不大的时候)可以new一个进程把内存中的数据写入数据库。

----------------------------------------

以下为一些测试相关数据结论:(数据单位为os.now(0))

第一次测试:数量级为180w,内存中采用k-v存储结构,采用在180w数据集重好随机取20条数据来确保查询结果的相对准确性

 

结论:在内存存储结构为k-v下,内存数据库的查询速度很棒

第二次测试:测试各个量级的数据占内存多少,来确定内存数据库是否可行(collectgarbage)

结论:100w量级的大约不到1G,前期的话还算靠谱

第三次测试:在1w数据量和10w数据量下分别采用三种查询方式看效率

结论:频繁查询可定要用主键索引。但是如果是低频次查询,我们也可以使用扫描查询的方式。前提是扫描查询在当前量级上必须是有效的。如果合服到了百万量级,我们可以关闭内存数据库,访问直接回到原生数据库即可(通过斜率比较得出)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值