无需登录 数据私有 本地保存

SQLite WebAssembly 浏览器端演示 - 离线数据库

14
0
0
0

SQLite WebAssembly 浏览器端数据库 离线运行 WebAssembly

快捷键 Ctrl+Enter
SELECT * FROM employees GROUP BY 统计 高薪员工 部门薪资汇总 查看表结构
准备就绪,请执行查询
在上方输入 SQL 并点击执行

常见问题与知识点

SQLite WebAssembly 是将 SQLite 数据库引擎通过 Emscripten 编译为 WebAssembly 字节码,使其能够在浏览器中直接运行。使用 sql.js 库,数据库完全在浏览器内存中运行,无需服务器、无需安装。SQLite 的 C 源码被编译为高效的 WASM 指令,性能接近原生,支持标准 SQL 语法、事务、索引等完整功能。数据库文件以二进制形式存在于内存中,可通过 export() 导出为 .db 文件保存到本地。

数据库完全存储在浏览器内存(RAM)中,刷新页面或关闭标签页后数据会丢失。如需持久化,可以使用导出功能将数据库保存为 .db 文件到本地磁盘,下次使用时通过导入功能恢复。高级用法中,也可以将数据库序列化后存入 IndexedDBlocalStorage(受存储容量限制),实现自动持久化。本工具提供一键导出/导入按钮,方便您保存和恢复数据。

IndexedDB 是浏览器内置的 NoSQL 键值存储,适合存储结构化 JSON 数据,但不支持 SQL 查询、JOIN、事务等关系型操作。SQLite WebAssembly 提供完整的关系型数据库能力:支持标准 SQL、多表联合查询、聚合函数、索引优化、ACID 事务等。SQLite 更适合需要复杂查询、数据关联分析的场景。两者可以互补使用:IndexedDB 用于持久化存储,SQLite 用于复杂数据处理。

数据库大小受浏览器内存限制,通常几十到几百 MB 的数据都能流畅运行。WebAssembly 的执行效率很高,简单查询在1-5 毫秒内完成,复杂聚合查询也能在几十毫秒内返回结果。对于超过内存限制的大型数据集,建议在服务端使用原生 SQLite 或其他数据库。本工具在结果区会显示每次查询的执行耗时,您可以直接感受 WASM 的性能表现。

非常安全。数据库完全在您浏览器的沙箱环境中运行,遵循同源策略。其他网站无法访问您的数据库内容。数据仅在当前页面的内存中,不会自动上传到任何服务器。SQLite WebAssembly 是纯客户端技术,非常适合处理敏感数据或离线场景。如果您需要跨设备同步,可以导出数据库文件后通过安全渠道传输。

sql.js 基于 SQLite 3 完整编译,支持绝大多数 SQLite 功能:SELECT、INSERT、UPDATE、DELETE、CREATE TABLE、DROP TABLE、ALTER TABLE、索引、视图、触发器、CTE(WITH子句)、窗口函数、JSON 函数、全文搜索(FTS5)等。主要限制包括:不支持多线程并发写入、不支持 WAL 模式(内存数据库不需要)、部分文件系统相关功能不可用。对于浏览器端使用场景,这些限制通常不影响日常使用。

适用场景包括:离线数据查询工具、数据分析 POC 原型、客户端数据清洗与转换、SQL 学习与教学演示、浏览器端报表生成、Electron 桌面应用、数据可视化前的预处理、隐私敏感数据的本地处理等。不适用于需要持久化存储且数据量大的生产环境(应使用服务端数据库)、需要多用户并发访问的场景。

点击左侧面板的「导入数据库」按钮,选择您本地的 .db.sqlite 文件即可。工具会读取文件内容并在浏览器中重建数据库。支持的来源包括:SQLite 命令行工具导出的数据库文件、Python sqlite3 模块创建的数据库、移动端 SQLite 数据库等。导入后所有表和数据立即可用,您可以在表列表中查看并进行查询操作。