
SQLite内存
2014年1月19日,编程语言已关闭注释封闭425次+
创建SQLite内存
SQLite通常存储在磁盘文件中,但是在某些情况下,我们可以将始终保留在内存中. 在相同条件下进行测试后,将插入SQLite内存
速度几乎是文件的3倍.
实现SQLite内存的方法是:
1. 使用内存来虚拟化磁盘,然后将SQLite文件放入该虚拟磁盘
2. 使用Memcached实现SQLite内存
3. 调用sqlite3_open()时,文件名参数传递为“: memory: ”

上述方法3是最常用的方法,如下:
sqlite3 * memory_db;
int rc = sqlite3_open(“: memory: ”,&memory_db);
调用上述函数后,将在内存中创建一个新. 由于没有持久性,因此将在当前连接关闭后立即消失,并且没有文件
生成. 需要说明的是,尽管多个连接可以通过上述方法创建多个内存,但是它们是不同的内存 sqlite,彼此之间没有任何关系
,只能通过连接来区分.
SQLite内存的操作
可以通过以下方式将内存持久化到文件中,或者可以将文件加载到内存中:
int SQLite3Backup(sqlite3 * src_db,sqlite3 * dest_db)

{
int rc = SQLITE_ERROR;
sqlite3_backup * db_backup = sqlite3_backup_init(dest_db,“ main”内存 sqlite,src_db,“ main”);
如果(NULL!= db_backup)
{
rc = sqlite3_backup_step(db_backup,-1);
rc = sqlite3_backup_finish(db_backup);
}
返回rc;

}
//打开内存
sqlite3 * memory_db;
rc = sqlite3_open(“: memory: ”,&memory_db);
//打开文件
sqlite3 * file_db;
rc = sqlite3_open(文件名和文件db);
//将内存转储到文件
SQLite3Backup(memory_db,file_db);

//将文件加载到内存中
SQLite3Backup(file_db,memory_db);
类似地,您也可以使用Attach命令将内存附加到当前连接,就像其他普通一样:
ATTACH DATABASE': 内存: 'AS cdb;
SQLite内存不足
在获得SQLite内存的便捷操作时,您还必须注意它具有以下缺陷:
1. 当前连接关闭(或断电或程序崩溃)时,它将立即消失,您需要定期附加到文件备份中
2. 内存没有名称,其他进程无法直接访问
3. 不支持读写互斥,并且需要手动锁定
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-197148-1.html
看
喜欢