在 OpenHarmony 开发中,数据库卡顿通常指使用关系型数据库(RDB,基于 SQLite)或偏好型数据库(Preferences)时,出现查询慢、写入卡、UI 掉帧等问题。常见原因和对应解决方向如下:
UI 线程(主线程)执行:
✅ 解决:
query / insert 的 Promise 版本)WHERE、ORDER BY、JOIN 字段无索引✅ 解决:
CREATE INDEX idx_user_age ON user(age);
query() 返回几千上万条getAll() 到内存✅ 解决:
SELECT * FROM user LIMIT 20 OFFSET 0;
SELECT *insert 都自动提交✅ 解决:
BEGIN TRANSACTION;
-- 批量操作
COMMIT;
或:
rdbStore.batchInsert()
VACUUM✅ 解决:
VACUUM;
✅ 解决:
✅ 解决:
// 异步 + 分页 + 索引字段查询
const result = await rdbStore.query(
"SELECT id,name FROM user WHERE age > ? LIMIT ? OFFSET ?",
[18, 20, 0]
);
如果你愿意,可以告诉我:
我可以直接帮你定位并给优化代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。