在 OpenHarmony 中,数据库优化通常涉及 关系型数据库(RDB,基于 SQLite) 和 轻量级存储(Preferences) 两大方向。下面从设计、写入、查询、存储、系统层面给你一套实用优化思路。
✅ 建议:
不要“什么都塞数据库”,小数据用 Preferences 性能更好。
-- 不推荐
CREATE TABLE user (id TEXT, age TEXT);
-- 推荐
CREATE TABLE user (id INTEGER PRIMARY KEY, age INTEGER);
CREATE INDEX idx_user_name ON user(name);
⚠ 注意:
OpenHarmony RDB 单条插入很慢,必须批量:
rdbStore.beginTransaction();
for (let i = 0; i < 1000; i++) {
rdbStore.insert("user", value);
}
rdbStore.commit();
✅ 提升效果:10x~100x
getRdbStoreinsertAsync / updateAsync-- 不推荐
SELECT * FROM user;
-- 推荐
SELECT id, name FROM user;
SELECT * FROM user WHERE age > 18;
❌ 避免:
LIKE '%xxx%'UPPER(name))SELECT * FROM user LIMIT 20 OFFSET 0;
✅ 列表页必须分页,否则 UI 卡顿
DELETE FROM log WHERE time < ?;
VACUUM;
TaskPool 或 Worker| 问题 | 原因 | 解决 |
|---|---|---|
| 插入慢 | 没用事务 | 批量 + 事务 |
| 查询卡 | 全表扫描 | 加索引 |
| UI 卡顿 | 主线程 DB | 异步 / Worker |
| 包体大 | 存了文件 | 存路径 |
OpenHarmony 数据库优化 = 少写、批量写、建索引、分页查、异步做、不存大文件
如果你愿意,我可以:
直接说你的使用场景就行。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。