如何优化 IndexedDb 性能?多个 indexeddb 与多个对象存储?
How to optimize IndexedDb performance? Multiple indexeddb vs multiple objectstores?
我发现了这个特定问题:IndexedDB - ObjectStores vs multiple databases vs indices?
但是它并没有完全回答我的问题。我的情况是我有多个应用程序部分以不同方式使用 indexedDb。 indexedDb 的一个特定实例需要尽可能快 ("high-priority") 并且它总共只存储 60-100kb。另一个需要在 ("low-priority") 页面呈现时使用它(可能在 1-2 秒后)并且它可以存储多达 1.5mb 的数据。
目前,我让应用程序的每个部分都调用一个通用的 indexedDb 库来创建它们自己的 indexedDb 实例,这会产生 4-5 个实例。
现在我的问题是,将这些不同的实例移动到具有多个对象存储的单个实例中会更好吗?每个实例都可以使用自己的密钥与自己的对象库进行交互。
此处数字 1 是现有架构,数字 2 是新提案设计。
基本上我的问题是,转向 2 号提案会导致“高优先级”table 的访问速度比以前慢吗?如果变化不大,我想移至第 2 位以避免打开多个 indexedDb 实例,从而使整体性能更好。
我建议您使用单个数据库。某些集合的性能负载不会显着影响其他集合的性能负载。
我已经针对这种情况进行了测试,我对两个不同的 indexedDbs 进行了 indexedDb.open()。一个大小为 28mb,另一个大小为 1kb。
使用性能 API 衡量所用时间时,差异很小(1.8 毫秒对 2.2 毫秒)。
我发现了这个特定问题:IndexedDB - ObjectStores vs multiple databases vs indices?
但是它并没有完全回答我的问题。我的情况是我有多个应用程序部分以不同方式使用 indexedDb。 indexedDb 的一个特定实例需要尽可能快 ("high-priority") 并且它总共只存储 60-100kb。另一个需要在 ("low-priority") 页面呈现时使用它(可能在 1-2 秒后)并且它可以存储多达 1.5mb 的数据。
目前,我让应用程序的每个部分都调用一个通用的 indexedDb 库来创建它们自己的 indexedDb 实例,这会产生 4-5 个实例。
现在我的问题是,将这些不同的实例移动到具有多个对象存储的单个实例中会更好吗?每个实例都可以使用自己的密钥与自己的对象库进行交互。
此处数字 1 是现有架构,数字 2 是新提案设计。
基本上我的问题是,转向 2 号提案会导致“高优先级”table 的访问速度比以前慢吗?如果变化不大,我想移至第 2 位以避免打开多个 indexedDb 实例,从而使整体性能更好。
我建议您使用单个数据库。某些集合的性能负载不会显着影响其他集合的性能负载。
我已经针对这种情况进行了测试,我对两个不同的 indexedDbs 进行了 indexedDb.open()。一个大小为 28mb,另一个大小为 1kb。
使用性能 API 衡量所用时间时,差异很小(1.8 毫秒对 2.2 毫秒)。