IndexedDB - 对象存储 vs 多个数据库 vs 索引



我想知道什么时候拥有单个数据库与一个具有多个对象存储的数据库是一个好主意。我已经阅读了网络上的大多数教程,并查看了indexedDB的规范,但找不到比较这些不同概念的好例子。有没有人为这类事情提供一个具体的例子(使用多个对象存储和/或代码的设计模型)?

只要对象存储之间没有交叉事务操作,就可以将它们分离到多个数据库中。我更喜欢尽可能多地使用单独的数据库,以便在较小的对象存储数据库中更轻松地更改模式。

在极少数情况下,即使需要交叉事务,我什至使用单独的数据库。这些情况存在于用户设置数据库和应用程序数据库之间。用户设置和应用程序之间的不一致是可以的,因为真相在用户设置中,暂时的不一致并不重要。

请注意,打开数据库的成本很高。但是一旦打开,连接就不会消耗内存。数据库数量没有限制。

多个数据库

比具有多个对象存储的单个数据库具有更高的吞吐量,因为 Firefox 的实现会在任何写入事务上锁定整个数据库。

最新更新