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

我注意到,有多种方式来做SQLite操作(查询,插入,更新,删除),有些可以比其他更快。 许多网站提供不同的提示,并与其他人发生冲突。

  1. 看起来,使用一个事务进行批量插入比在循环中这样做要快得多。

    怎么来的? 使用SQLite时最好的方法是什么? sqlite如何在Android上工作?

  2. 混淆使用InserHelper与ContentValues ,如下所示。

    InserHelper是如何工作的,它会比ContentValues更快吗? 将交易速度进一步加快呢?

  3. 混淆其他SQL框架。 我记得添加索引会提高与索引有关的查询的性能。 Android也是如此吗? 这是一个很好的做法吗?

  4. 我听说在某些情况下,最好不要使用UI线程进行数据库操作。 在哪种情况下推荐? 如在DB操作变得有多慢? 如果数据库变成70MB,这是否意味着它会慢得多,UI线程应该永远不会处理它?

Solutions Collecting From Web of "如何在Android中使用SQLite实现最佳性能?"

怎么来的?

事务涉及磁盘I / O。 做一个大块的磁盘I / O比磁盘I / O的很多小块要便宜得多。

InserHelper是如何工作的,它会比contentValues更快吗?

引用文档 :“这个类允许用户对表进行多次插入,但只能编译一次SQL插入语句,这可能会提高性能。”

会以更快的交易速度包装它呢?

大概是的。

android也是如此吗?

索引可以提高查询速度,如果您为您正在执行的任何查询创build适当的索引。 索引总是减less插入/更新/删除速度,因为现在这些索引需要更新。 这与Android没有任何关系。

是一个好东西使用?

这是不可能的。 这与Android没有任何关系。

最好不要使用UI线程进行数据库操作

正确。

在哪些情况下会被推荐?

从不build议在主应用程序线程上执行任何磁盘I / O。

数据库操作变得有多慢?

世纪。 可能到那时,设备中的某些东西就会失效,或者电池电量不足。

如果数据库变成70MB,这是否意味着它会慢很多

这取决于你用它做什么。

和UI线程不应该处理它?

正确。