为了账号安全,请及时绑定邮箱和手机立即绑定

如何确定数据库服务器或嵌入式数据库是否合适

如何确定数据库服务器或嵌入式数据库是否合适

Go
猛跑小猪 2021-10-04 17:12:45
Bolt 是受 Howard Chu 和 LMDB 项目启发的纯 Go 键/值存储。该项目的目标是为不需要完整数据库服务器(如 Postgres 或 MySQL)的项目提供简单、快速且可靠的数据库。螺栓自述文件如何确定应用程序是否需要完整的数据库服务器?我认为这与并发作者的数量有关?我计划编写一个简单的分布式社交网络应用程序作为一个有趣的项目。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

  1. 一个embedded database驻留应用程序内。它不需要是相关的。

    例如,您计算机上的媒体管理器中嵌入了一个数据库,用于存储音频/视频元数据和文件位置。这个数据库可以是关系型的,在这种情况下,数据库可以是类似 sqlite 或 mysql 的东西。(我认为 postgres 不能嵌入到应用程序中)。如果您想缓存本地信息,或者您确定应用程序内的信息不需要与应用程序的功能进行外部通信,则嵌入式数据库非常有用。嵌入式数据库的核心设计目标是占用空间小,因此在许多情况下,嵌入式数据库会忽略专用数据库中的功能。

  2. 专用数据库服务器支持一个或多个客户端的读写操作,并且通常提供比嵌入式版本更多的功能。Postgres 和 Mysql 都是专用数据库,在网络应用中被广泛使用。它们也是关系数据库,而不是 Bolt 似乎是的键值存储。

  3. 键值存储是一个非关系数据库。想想redis(或dicts在 python 中),在哪里

    注意:postgreshas hstore,这是一个键值存储。

    • 检索:客户端给数据库key,数据库响应value。

    • 分配:客户端向数据库提供一个键和值,数据库为给定值分配一个新键,或更新现有键的值。

就像关系数据库一样,键值数据库可以嵌入或单独驻留在专用硬件上。以下是在做出这些架构决策时必须提出的一些示例问题。

  1. 我的应用程序是否依赖于需要通信的数据,我是想通过写入中央数据库来通信数据,还是每个聊天客户端都以对等模型连接到另一个客户端并存储自己的数据?

  2. 我的应用程序中是否需要关系模型、键值存储或其他一些奇特的数据模型?

只是我个人的看法,关系模型在过去 30 多年里成功地满足了各种各样的持久需求。具有非常成熟的嵌入式或专用部署解决方案。这是一个很好的起点。


查看完整回答
反对 回复 2021-10-04
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信