Android类sqliteOpenHelper有一个返回可读数据库以及可读写数据库的方法.目前我只使用可写数据库并且没有问题,但我想知道如果我只是在异步任务(或活动)中读取,那么改为使用可读性会带来什么好处.
可能有性能优势,但我没有看到任何实际数字的参考.此外,如果我在可读和可写之间切换,则更改会产生一些开销,可能会带来所有性能优势.
有没有人有这方面的实际数字或经验?是否值得实施单独访问?
解决方法
我无法对性能优势发表评论,但我总是尝试着对“良好实践”(或“最佳实践”)的原则,以便访问任何“数据”源(文本文件,数据库或其他).
一般地看待事物(不是特定于Android的),在决定访问级别时要做出的决定,归结为要执行的操作以及任何外部影响.
我能想到的两个例子……
>如果外部流程可能有
维护数据的责任 –
在这种情况下它可能已经’打开’
这样的数据源
它会阻止所有“读取”访问
维护阶段的任何其他过程.在这种情况下,
如果您的代码将被拒绝访问
您何时请求读/写访问权限
没有必要.
>危害数据完整性的风险 – 来自外部世界的系统攻击可以通过使用内部代码的安全漏洞来实现,当内部代码真正只需要“读取”访问权限时,内部代码具有对数据的读/写访问权限.
好的,这些点可能与Android有关,也可能没有(特别是如果您的数据源特定于您的应用),但正如我所说,我试图一般地看待事物并使用“最佳实践”方法.如果我不需要“写入”访问权限,我不会要求它.