-
总记录数
-
当前页
-
数据库数
-
对象仓库数

尚未选择对象仓库

在左侧选择一个数据库和对象仓库,或生成示例数据开始探索

常见问题与 IndexedDB 知识点

IndexedDB 是浏览器内置的 NoSQL 数据库,支持存储大量结构化数据(包括对象、数组、二进制数据等)。它使用索引来实现高性能搜索,支持事务操作,适合离线应用、PWA、缓存等场景。与 localStorage 不同,IndexedDB 是异步的,不会阻塞主线程。

存储容量:localStorage 通常限制 5-10MB,IndexedDB 可存储数百 MB 甚至更多(取决于浏览器和磁盘空间)。
数据类型:localStorage 仅支持字符串,IndexedDB 支持对象、数组、Blob、File 等。
操作方式:localStorage 同步操作,IndexedDB 异步操作。
查询能力:IndexedDB 支持索引和范围查询,localStorage 只能遍历。

对象仓库类似于关系数据库中的"表",是 IndexedDB 中存储数据的容器。每个对象仓库存储一类数据对象。创建时需要指定 keyPath(主键字段)或使用自动生成的键。仓库还可以定义多个索引来加速特定字段的查询。

Chrome DevTools(Application > IndexedDB)、Firefox 开发者工具(存储 > IndexedDB)都可以查看。本工具提供更友好的界面,支持分页浏览、搜索过滤、数据导出、记录删除等功能。您也可以使用 indexedDB.databases() API 以编程方式获取数据库列表。

Chrome 允许最多占用磁盘空间的 60%(按源计算),单个源可存储数百 MB。Firefox 限制约 50MB,但可请求更多。Safari 限制约 1GB。当存储空间不足时,浏览器可能自动清理数据。建议使用 navigator.storage.estimate() 查看可用空间。

keyPath:主键,每条记录的唯一标识。可以是对象中的某个字段(如 id),也可以是自动生成的递增整数。
索引:在 keyPath 之外为其他字段创建的查找结构,加速非主键字段的查询。一个仓库可以有多个索引,支持唯一索引和非唯一索引。