【问题标题】:FMDB: is It good remaininig open database during the whole life cycle of ios app?FMDB:在ios应用的整个生命周期中保持开放数据库好不好?
【发布时间】:2013-01-22 10:31:35
【问题描述】:

我对 FMDB 包装类的数据库打开和关闭操作感到困惑。

如果我在其中打开数据库是否会产生问题 AppDelegate 类的 applicationDidFinishLoading 方法 并且在应用程序终止之前不要关闭?

谢谢。

【问题讨论】:

    标签: ios fmdb


    【解决方案1】:

    除非您更改架构,否则没有理由关闭它。所以保持开放。

    【讨论】:

    • 如果应用程序在前台运行的时间超过数据库打开时间和应用程序进入后台模式 db.close 会更好吗?
    • 如果数据库打开并且它不会使用很长时间就会自动关闭?
    【解决方案2】:

    来自官方 FMDB 文档:

    开幕

    在与数据库交互之前,必须先打开它。如果没有足够的资源或权限来打开和/或创建数据库,则打开失败。

    if (![db open]) {
    [db release];
    return;
    }
    

    结束

    当您对数据库执行完查询和更新后,您应该关闭 FMDatabase 连接,以便 SQLite 放弃它在操作过程中获取的任何资源。强>

    [db close];
    

    因此,每次查询数据库时,您的数据库都应该有一对openclose 调用。

    简而言之,当您需要数据库中的内容时打开数据库连接,并在使用完数据库后关闭它。

    文档链接:https://github.com/ccgus/fmdb

    【讨论】:

    • 那么如果我在 iOS 应用程序的整个生命周期中不关闭数据库有什么缺点?
    • SQLite will relinquish any resources it has acquired during the course of its operation.,从文档中,如果您不关闭连接,SQLite 获取的资源将不会被释放,您的应用程序将出现内存问题。
    • 如果您正在执行大量查询,最好保持数据库打开。打开数据库时性能会受到影响,老实说,sqlite 占用的资源并不是很多。保持打开状态。
    猜你喜欢
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多