iOS FMDB 不需要关闭

以前做了一个应用,里面用到了FMDB,进行每一次操作前,都open,完成操作后都close。因为我是参考他们以前的代码。程序初期没发现什么问题,程序完成后,各种卡顿就出现了!即使我是放在新线程里操作的。仔细检查后发现,程序用在open 和 close上的cpu占有率异常地高,尤其是快速操作进行测试时。后来我查到了下面的帖子,原来,用错了!

http://stackoverflow.com/questions/15720272/when-to-close-sqlite-database-using-fmdb

问题是:

When should you close the connection to an SQLite database (using [db close] in FMDB)?

Right now I am closing it after running every batch of related queries, but should I rather close when my app closes? What are the pros/cons of doing either way?

答案是:

I‘m the guy who wrote FMDB.

Keep it open unless you change your schema. That‘s the only reason to close it, and constantly re-opening it is a little hit on performance / battery life.
I don‘t do much iOS programming- so take my answer with a grain of salt. But no, I don‘t think you need to close it. If the fd is still around in SQLite, then it should all be good. I guess try it, and let us know what you find out :) 
时间: 2024-11-03 21:33:28

iOS FMDB 不需要关闭的相关文章

ios FMDB类库的使用 学习笔记

文章摘自:  文顶顶 iOS开发数据库篇-FMDB简单介绍 什么是FMDB FMDB是ios平台的sqlite数据库框架 FMBD以oc的方式封装了sqlite的c语言API FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的c语言代码 比苹果的core Data框架,更加轻量级和灵活 提供了多线程安全的数据库操作方法,有效地防止数据混乱 FMDB的github地址 https://github.com/ccgus/fmdb 核心类 FMDB有三个主要的类 1.FMDatabase 一

iOS FMDB--UIImage的插入与读取

1:先倒入FMDB 保存图片 #import "BaseViewController.h" #import "FMDatabase.h" #import "FMDatabaseQueue.h" #import "PPCamaraUtil.h" #import "SecondViewController.h" static const NSString *[email protected]"Base

iOS FMDB

FMDB 用到了sqlite3 中的一些语法  这里有sqlite的一些借鉴语法 http://www.runoob.com/sqlite/sqlite-data-types.html (使用前准备工作,通过cocoapod 或者在github上down一份 FMDB第三方的库  https://github.com/ccgus/fmdb, 然后:添加库) 使用步骤: 1.创建数据库(如果没有数据库的情况) 2.打开数据库(每次操作前都必须保证数据库是打开状态) 3.创建一张保存数据的表(用于保

iOS Fmdb数据存储

fmdb经常用到,我感觉学习程序的人都会用到数据存储,可是每个语言开发用到的数据库理论是一样的,都是增,删,改,查,ios经常用到fmdb, 1.先实例化一个 #import <Foundation/Foundation.h> #import "FMDatabase.h" @interface LNFmdbDate : NSObject @property (nonatomic ,strong)FMDatabase *db; @end #import "LNFmd

IOS FMDB 使用

IOS开发中如果用Sqlite库来写数据库会比较麻烦,FMDB是对sqlite的封装,有更加友好简洁的的语句. 1,FMDB下载地址:FMDB下载地址 2,导入src下的文件,使用时 #import "FMDatabase.h" 3,创建数据库 #define kDocDir [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] #define

iOS - FMDB数据库的使用

下面不废话了直接上代码??/* 首先把FMDB拖入到工程中,需要我们把sqlite3这个库导入工程,(若是非ARC的工程,我们可以直接导入就好) 数据库-->操作大量的有规律的数据 FMDB是别人在系统数据库的繁琐的基础上给又封装了一下,供我们使用,-->相比于系统数据库更简单,好用 FMDatabase 主要是提供操作时用得sql语句 FMDatabaseAdditions.h 只要是负责多线程或是查询时更新时的操作 FMDBResultSet 结果集,对数据库的操作,返回结果 */ //创

iOS FMDB的使用

简介: SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK 很早就支持了 SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可.但是,原生的 SQLite API 在使用上相当不友好,在使用时,非常不便.于是,开源社区中就出现了一系列将 SQLite API 进行封装的库,而 FMDB (https://github.com/ccgus/fmdb) 则是开源社区中

IOS:FMDB使用databaseQueue实现数据库操作线程安全

sqlite数据库是ios开发中经常使用到的数据持久化方案,因为项目需求的不同,对数据库操作的要求也不同. 由于最近使用sqlite时,有一些地方需要频繁的更新,这时在多线程操作时,其他线程访问数据库会造成程序崩溃,因为之前的框架里设计的数据库管理工具类采用的是单例模式,这样在多线程操作同一个数据库时很容易引起冲突,导致程序崩溃,所以开始寻找多线程下线程安全的办法. 其实FMDB本身已经对多线程做了考虑,FMDatabaseQueue就是为了解决数据库操作线程安全的,只是由于之前框架集成的单例操

【转】iOS开发4:关闭键盘

在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘.对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但是 iPhone 程序中的键盘却没有这样的按钮,不过我们可以采取一些方法关闭它.例如,我们可以实现按下 Rerun (有时也是 Done.Research 等)键关闭键盘,或者,更人性化的,轻触背景关闭键盘. 1.首先讲一下按下Return键关闭键盘. 当按下键盘的 Return 键,会产生一个 Did End On Exit 事件,此时,我们告诉文本框要放弃控件,于是键盘