【问题标题】:BoltDB performance as a backend DBBoltDB 作为后端数据库的性能
【发布时间】:2016-03-30 03:09:53
【问题描述】:

我正在考虑使用 BoltDB 作为后端主数据库,我的 Go 代码几乎没有问题;还需要您对使用 BoltDB 作为主要后端数据库的意见。

  1. 我使用 Go 的 net/http,并使用 boltDb 作为全局变量。
  2. 当程序启动时,它会读取 BoltDB 并且文件是打开的,直到程序终止。
  3. 当请求(http)发送到程序时,它将访问 BoltDB。 (HandleFunc)
  4. 我没有使用任何频道。

第一季度。最重要的问题是,BoltDB 是否能够以 1000 个并发连接进行生产? Q2。如果有并发写查询,BoltDB会自动一一处理吗?

非常感谢。我是 Go 和 BoltDB 的新手,我想知道我是否以正确的方式使用正确的数据库。

【问题讨论】:

    标签: database go boltdb


    【解决方案1】:

    A1。是的,我们将它用于超过 1000 个并发连接。

    A2。是的,bolt 是线程安全的,当你调用 db.Update 时,它​​会锁定数据库,所以你知道你的数据永远是一致的。

    还有一个提示,不要在更新函数中做任何繁重的工作。

    【讨论】:

    • 非常感谢!
    • 您可能希望将 *bolt.DB 变量添加到 http.Handler 实现而不是全局变量,以便您可以更轻松地(并且并行地)测试它。
    • 此外,它可以很好地处理高并行读取并发,但写入将被序列化。只要您的 1000 个请求不是全部写入(或者它们正在执行小写入),您应该没问题。
    猜你喜欢
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2010-09-05
    • 1970-01-01
    相关资源
    最近更新 更多