Indexing IndexedDB使用索引还是键范围?

Indexing IndexedDB使用索引还是键范围?,indexing,indexeddb,Indexing,Indexeddb,在indexedDB中,如果键是整数数组,例如[n,0]到[n,m],则对于涉及获取数组键的第一个元素为n的所有记录或在同一组记录上打开光标的操作,在存储n的附加属性上使用索引比使用键范围有什么好处 认为索引可能不是更好的原因包括浏览器必须为对象存储的每次更改维护索引,必须向每个记录添加一个附加属性以存储已存储的数据n,由于索引中的键总是指向对象存储中的连续记录,而不是分散在整个对象中,因此可能获得的收益很少 如果n的不同值的数量可能不超过1000,而m的不同值的数量可能不超过50,则是否使用优

在indexedDB中,如果键是整数数组,例如
[n,0]
[n,m]
,则对于涉及获取数组键的第一个元素为
n
的所有记录或在同一组记录上打开光标的操作,在存储
n
的附加属性上使用索引比使用键范围有什么好处

认为索引可能不是更好的原因包括浏览器必须为对象存储的每次更改维护索引,必须向每个记录添加一个附加属性以存储已存储的数据
n
,由于索引中的键总是指向对象存储中的连续记录,而不是分散在整个对象中,因此可能获得的收益很少

如果
n
的不同值的数量可能不超过1000,而
m
的不同值的数量可能不超过50,则是否使用优于键范围的索引


谢谢。

我想indexedDB的目的是在本地存储对象。 不是sql需要更新每个对象中的列。 因为您更改了对象结构(比如通过添加属性) 确实,存储中的所有对象都必须按照您所说的那样重写

嗯,嗯。。。您的另一个选择是使用另一个存储更新数据库 其中包含类似于sql中的forien键或存储其他存储对象扩展名的uniqe键的内容。。。在其中,每个obj项目也应该是相同的结构


我认为这是您开始使用onupgradeneeded的关键点。

我想indexedDB的目的是在本地存储对象。 不是sql需要更新每个对象中的列。 因为您更改了对象结构(比如通过添加属性) 确实,存储中的所有对象都必须按照您所说的那样重写

嗯,嗯。。。您的另一个选择是使用另一个存储更新数据库 其中包含类似于sql中的forien键或存储其他存储对象扩展名的uniqe键的内容。。。在其中,每个obj项目也应该是相同的结构

我认为这是你开始使用OnUpgrade的关键点