SQLite学习手册(内存数据库)
一、内存数据库:
在SQLite中,数据库通常是存储在磁盘文件中的。然而在有些情况下,我们可以让数据库始终驻留在内存中。最常用的一种方式是在调用sqlite3_open()的时候,数据库文件名参数传递":memory:",如:
rc = sqlite3_open(":memory:", &db);
在调用完以上函数后,不会有任何磁盘文件被生成,取而代之的是,一个新的数据库在纯内存中被成功创建了。由于没有持久化,该数据库在当前数据库连接被关闭后就会立刻消失。需要注意的是,尽管多个数据库连接都可以通过上面的方法创建内存数据库,然而它们却是不同的数据库,相互之间没有任何关系。事实上,我们也可以通过Attach命令将内存数据库像其他普通数据库一样,附加到当前的连接中,如:
ATTACH DATABASE ':memory:' AS aux1;
二、临时数据库:
在调用sqlite3_open()函数或执行ATTACH命令时,如果数据库文件参数传的是空字符串,那么一个新的临时文件将被创建作为临时数据库的底层文件,如:
rc = sqlite3_open("", &db);
或
ATTACH DATABASE '' AS aux2;
和内存数据库非常相似,两个数据库连接创建的临时数据库也是各自独立的,在连接关闭后,临时数据库将自动消失,其底层文件也将被自动删除。
尽管磁盘文件被创建用于存储临时数据库中的数据信息,但是实际上临时数据库也会和内存数据库一样通常驻留在内存中,唯一不同的是,当临时数据库中数据量过大时,SQLite为了保证有更多的内存可用于其它操作,因此会将临时数据库中的部分数据写到磁盘文件中,而内存数据库则始终会将数据存放在内存中。
SQLite学习手册(内存数据库)相关推荐
- SQLite学习手册(目录)
在实际的应用中,SQLite作为目前最为流行的开源嵌入式关系型数据库,在系统的架构设计中正在扮演着越来越为重要的角色.和很多其它嵌入式NoSQL数据库不同的是,SQLite支持很多关系型数据库的基本特 ...
- 学习Stephen Liu的《SQLite学习手册(数据表和视图)》(一)
好好学习,day day up.不能再玩了,学习要紧 以下内容主要基于对于Stephen Liu的博文SQLite学习手册(数据表和视图)的学习. 零.准备工作 先把sqlite3.exe的路径添加到 ...
- SQLite学习手册(命令行工具)
工欲善其事,必先利其器.学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的.最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快.言归正传吧,在SQLite的官方 ...
- SQLite学习手册(数据库和事务)
一.Attach数据库: ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化 ...
- SQLite学习手册(实例代码二)
三.高效的批量数据插入: 在给出操作步骤之前先简单说明一下批量插入的概念,以帮助大家阅读其后的示例代码.事实上,批量插入并不是什么新的概念,在其它关系型数据库的C接口API中都提供了一定的支持,只是接 ...
- SQLite学习手册(实例代码一)
一.获取表的Schema信息: 1). 动态创建表. 2). 根据sqlite3提供的API,获取表字段的信息,如字段数量以及每个字段的类型. 3). 删除该表. 见以下代码及 ...
- SQLite学习手册(锁和并发控制)
一.概述: 在SQLite中,锁和并发控制机制都是由pager_module模块负责处理的,如ACID(Atomic, Consistent, Isolated, and Durable).在含有数据 ...
- SQLite学习手册(临时文件)
一.简介: 尽管SQLite的数据库是由单一文件构成,然而事实上在SQLite运行时却存在着一些隐含的临时文件,这些临时文件是出于不同的目的而存在的,对于开发者而言,它们是透明的,因此在开发的过程中我 ...
- SQLite学习手册(在线备份)
一.常用备份: 下面的方法是比较简单且常用的SQLite数据库备份方式,见如下步骤: 1). 使用SQLite API或Shell工具在源数据库文件上加共享锁. 2). 使用Shell ...
最新文章
- 中国储能电池行业经济效益评价与投资战略规划展望报告2022-2028年版
- python下载文件的11种方式_Python 中常见的几种下载文件方法
- android studio设置JDK路径
- batocera游戏整合包_星露谷物语绅士mod整合包
- Android中fragment之间和Activity的传值、切换
- 初学者必看的文章:在VM12中安装 RedHat RHEL7.2 系统的详细步骤:看我如何操纵RHEL系统...
- 160 - 34 Cruehead.3
- 单片机涡轮流量传感器_关于涡轮流量计传感器的维护保养
- Win CE下编译选项介绍
- java json 返回null,[] Spring4 MVC 返回json格式时候 设置不返回null值属性的有关问题...
- 游戏外挂是怎么炼成的
- pytorch搭建TextCNN与使用案例
- smartphone 创建快捷方式 shorcut(1)
- vdcode C语言不能弹出运行窗口_C语言编程常见问题分析,以及错误解决办法!
- securecrt delete键向后删除
- vs2005启动不了,手把手教你修复它
- 管理会计学复习题集 答案
- PyCharm小技巧分享—主菜单消失再显示
- 微信开发工具出现 [渲染层网络层错误]
- 简普科技Q3财报解读:业绩超过预期之后的更多确定性
热门文章
- java spring框架 注解_详解Java的Spring框架中的注解的用法
- Spring Security构建Rest服务-0100-前言
- PuTTY 设置Serial(ubuntu)
- 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射...
- 《算法导论》学习总结 — 2.第一章 第二章 第三章
- BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)
- Mysql初始化root密码和允许远程访问
- 自学ng2 -生命周期钩子
- Shiro学习(15)单点登录
- 【转载】MySQL Show命令总结