如何在Android中使用SQLite实现最佳性能?

前端之家收集整理的这篇文章主要介绍了如何在Android中使用SQLite实现最佳性能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到有多种方法可以执行sqlite操作(查询,插入,更新,删除),有些方法可以比其他操作更快.许多网站提供不同的提示,有些与其他提示有冲突.

>似乎使用批量插入的事务比在循环中这样做要快一些.

怎么来的?使用sqlite时最好的方法是什么? sqlite在Android上如何工作?
>使用InserHelperContentValues混淆,如here所示.

InserHelper如何工作,总是会比ContentValues快吗?会以交易速度加快吗?
>混淆其他sql框架.我记得添加索引会提高与索引相关的查询性能.这对Android来说也是如此吗?这是一个好习惯吗?
>我听说在某些情况下,最好不要使用UI线程进行数据库操作.在这种情况下是否推荐?如何,DB操作有多慢?如果DB变为70MB,是否意味着它会慢得多,UI线程永远不会处理它?

解决方法

how come?

事务涉及磁盘I / O.做一个更大的磁盘I / O块比大量的磁盘I / O要少得多.

how does the InserHelper work and will it always be faster than contentValues?

引用the documentation:“这个类允许用户对表进行多个插入,但是只能编译一次sql插入语句,这可能会提高性能.

will wrapping it with a transaction speed it even further ?

大概是的

is it true for android too ?

索引可以提高查询速度,如果您为任何正在执行的查询创建正确的索引.索引总是减少插入/更新/删除速度,因为现在这些索引需要更新.这与Android无关.

is is a good thing to use ?

这是不可能在抽象中回答的.这与Android无关.

it’s best to not use the UI thread for DB operations

正确.

in which cases will it be recommended ?

绝对不要在主应用程序线程上执行任何磁盘I / O.

how slow could DB operation become ?

世纪.可能到那时,设备会出现故障,否则会耗尽电池电量.

if the DB becomes 70MB,does it mean that it will be much slower

这取决于你用它做什么

and UI thread should never handle it ?

正确.

原文链接:https://www.f2er.com/android/310932.html

猜你在找的Android相关文章