何时关闭android上的数据库连接?每次操作完成后或应用程序退出后

jim*_*ang 43 database sqlite connection android

我有一个经常访问本地sqlite3数据库的android应用程序,出于性能考虑,所以我始终保持连接打开.但我的一位朋友建议我每次操作都要打开/关闭连接.

1)你们对这两种方法的看法是什么?利弊/利弊.2)我做了一些测试,发现数据库连接没有太多的性能开销.DB连接的性能开销是否因DB的大小而异?

dbm*_*dbm 33

我不知道频繁关闭/打开数据库的任何性能损失(无论其大小如何).我认为这个问题的答案还取决于访问数据库的应用程序类型.

你经常"重新查询"数据库吗?
然后似乎纠正了它保持开放.

你每次取东西时都会获取不同的数据吗?
同样,让它保持开放似乎是合理的(因为你不会获得缓存数据).

是否有其他应用程序访问同一个数据库?
如果存在并发或阻塞问题的风险,那么在完成从/向它读/写之后关闭数据库可能是明智的.

通常我会说,在优化性能时,您可能会获得更多缓存数据,而不是让数据库保持打开状态(反对关闭它).


Dav*_*kes 6

如果您使用的是内存数据库,则在关闭连接时将丢弃您的数据.

也许是一个边缘案例,但它只是抓住了我.

  • 这实际上是一个非常好的答案.我最近刚刚使用内存数据库作为缓存基础架构(我明确地希望在退出时丢弃缓存)的成功经验... (2认同)