4

目前boltdb用于存储桶中的各种条目。

如何使用 goroutine 和通道在数据库中读取和更新?

4

1 回答 1

10

一般是可以的,只要注意以下几点:

  • 所有访问都应该在它们自己的事务中完成。事务不应在 goroutine 之间共享(无论它们是只读的还是读写的)。

  • boltdb 在给定的时间点只容忍一个作家。如果多个并发事务尝试同时写入,它们将被序列化。保证了数据库的一致性,但它对性能有影响,因为写操作不能并行化。

  • 只读事务同时执行(并且可能并行执行)。

  • 在给定的 goroutine 中同时打开一个事务以避免死锁情况。

于 2015-06-05T19:15:14.573 回答