gpt4 book ai didi

ios - SQLCipher + DB 性能在 iOS 设备上很差

转载 作者:行者123 更新时间:2023-11-29 03:01:36 26 4
gpt4 key购买 nike

我使用 SQLCipher 加密 sqlite 数据库,并使用 FMDB 通过 [FMDB setKey:] 调用对加密数据库执行 sqlite 操作。

当我在加密数据库上使用 SQLCipherFMDB 时,我的应用程序运行缓慢。如果我在非加密数据库上仅使用 FMDB,那么它可以正常工作,而无需占用更多设备的 CPU 使用率。

请帮我解决如何使用 SQLCipherFMDB 解决此内存 cpu 使用问题?提前致谢。

最佳答案

对于优化 SQLCipher 性能,有一些非常重要的准则:

  • 不要重复打开和关闭连接,因为 key 推导的成本非常高,这是有意设计的
  • 使用事务来包装插入/更新/删除操作。除非在事务范围内执行,否则每个操作都将发生在它自己的事务中,这会减慢几个数量级
  • 确保您的数据规范化(即,使用良好做法将数据分离到多个表中以消除冗余)。不必要的数据重复导致数据库膨胀,这意味着 SQLCipher 需要操作更多页面
  • 确保所有用于搜索或连接条件的列都已编入索引。如果不这样做,SQLCipher 将需要对大量页面执行完整的数据库扫描
  • 如果您进行大量删除、更新等操作,请定期清理以确保数据库紧凑。

最后,为了进一步诊断您的特定查询语句的性能,您可以运行 explain query plan 吗?命令反对你的一些查询?解释查询命令的输出描述为 here .

关于ios - SQLCipher + DB 性能在 iOS 设备上很差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23235318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com