关于小型软件使用db的一点愚见,欢迎拍砖

an_bachelor 2020-11-20 11:51:28
数据存放在内存中比db中方便理解、不割裂对象,速度也快很多,
个人浅见上db之前首先还是要基于数据量做个评估,
现在内存这么大,愚以为预估32G以下的数据量(32G内存在狗东大概500多块,即使对小本经营都不算贵)
完全都可以不用DB,
可以启动程序时一次性加载,结束时写回就好,一个32G的DB,对多数小应用都是足够的。

如果考虑程序可能崩溃,可以单独开一个进程/机器作为备份、或是作为数据提供者、或作为备份,
但它不同于DB,这个进程打开、关闭时一次性读/写所有对象,中间接收来自“业务进程”的任何写操作并同步到自己的备份中,
整个系统在这期间的每次写操作,即使用最笨的办法,写3次(1主2备)再返回,也比写磁盘一次快得多。
归根结底,我们考虑程序架构的时候,许多时候忽视了问题的规模,小程序应该有小而快的方法。
...全文
977 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
进击的菠萝 2021-01-11
  • 打赏
  • 举报
回复
安全性,数据备份呢
一条晚起的虫 2021-01-08
  • 打赏
  • 举报
回复
// 数据量大,数据关系复杂,数据安全性要求高,可以用内存数据库 // 其它情况,可以考虑用内存映射文件
gz_qmc 2020-12-30
  • 打赏
  • 举报
回复
楼主研究一下内存映射文件
bluesen 2020-12-08
  • 打赏
  • 举报
回复
关键sql是一个好的接口界面,大家都已经习惯,所以sql查询接口还是要实现。
我后来自己造车轮,写了一个内存数据库,索引基于map。
使用直接嵌入或socket查询都可以。
pc12138cwp 2020-11-23
  • 打赏
  • 举报
回复
很强,吃瓜,刷点分
八爻老骥 2020-11-22
  • 打赏
  • 举报
回复
引用 2 楼 陈仲甫 的回复:
引用 1 楼 mmcanyu 的回复:
sqlite,redis都支持内存数据库啊
不用db的主要理由除了写磁盘的速度;还有一个是db需要专用的调用接口,并拆碎你本地内存中的对象存进表格。


H2,Sqlite都不错啊。
an_bachelor 2020-11-21
  • 打赏
  • 举报
回复
引用 1 楼 mmcanyu 的回复:
sqlite,redis都支持内存数据库啊
不用db的主要理由除了写磁盘的速度;还有一个是db需要专用的调用接口,并拆碎你本地内存中的对象存进表格。
mmcanyu 2020-11-21
  • 打赏
  • 举报
回复
sqlite,redis都支持内存数据库啊

1,658

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧