>似乎使用批量插入的事务比在循环中这样做要快一些.
怎么来的?使用sqlite时最好的方法是什么? sqlite在Android上如何工作?
>使用InserHelper与ContentValues混淆,如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 ?
正确.