2019-06-24 21:59
⁄ 工业·编程
⁄ 共 18356字
最早的虚拟机可追溯到IBM的VM/370,到上个世纪90年代,在计算机程序设计语言领域又出现一件革命性的事情——Java语言的出现,它与c++最大的不同在于它必须在Java虚拟机上运行。Java虚拟机掀起了虚拟机技术的热潮,随后,Microsoft也不甘落后,雄心勃勃的推出了.Net平台。首先将SQLite虚拟机与Java虚拟机作对比。
1、概述
所谓虚拟机是指对真实计算机资源环境的一个抽象,它为解释性语言程序提供了一套完整的计算机接口。虚拟机...
SQLite3阅读全文
2019-06-23 12:52
⁄ 工业·编程
⁄ 共 10177字
SQLite作为嵌入式数据库,通常针对的应用的数据量相对于DBMS的数据量小。所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面。而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多。就拿Oracle来说吧,它对数据文件不仅从物理上进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分DM也一样。不管怎么说,数据库文件要存储大量的数...
SQLite3阅读全文
2019-06-22 21:49
⁄ 工业·编程
⁄ 共 7248字
1.API
由两部分组成: 核心API(core API)和扩展API(extension API)。
核心API的函数实现基本的数据库操作:连接数据库、处理SQL、遍历结果集。它也包括一些实用函数,比如:字符串转换、操作控制、调试和错误处理。
扩展API通过创建你自定义的SQL函数去扩展SQLite。
1.1、SQLite Version 3的一些新特点
(1)SQLite的API全部重新设计,由第二版的15个函数增加到88个函数。这些函数包括支持UTF-8和UTF-16编码的功能函数。
(2)改进并...
SQLite3阅读全文
2019-06-21 17:16
⁄ 工业·编程
⁄ 共 38812字
事务处理是DBMS中最关键的技术,对SQLite也一样,它涉及到并发控制,以及故障恢复等等。在数据库中使用事务可以保证数据的统一和完整性,同时也可以提高效率。假设需要在一张表内一次插入20个人的名字才算是操作成功,那么在不使用事务的情况下,如果插入过程中出现异常或者在插入过程中出现一些其他数据库操作的话,就很有可能影响了操作的完整性。所以事务可以很好地解决这样的情况,首先事务是可以把启动事务过程中的所有操...
SQLite3阅读全文
2019-06-20 21:12
⁄ 工业·编程
⁄ 共 12585字
一、获取表的Schema信息
1). 动态创建表。
2). 根据sqlite3提供的API,获取表字段的信息,如字段数量以及每个字段的类型。
3). 删除该表。
见以下代码及关键性注释:
#include <sqlite3.h>
#include <string>
using namespace std;
void doTest()
{
sqlite3* conn = NULL;
//1. 打开数据库
int result = sqlite3_open("D:/mytes...
SQLite3阅读全文
2019-06-19 17:43
⁄ 工业·编程
⁄ 共 18346字
使用过程根据函数大致分为如下几个过程:
· sqlite3_open()
· sqlite3_prepare()
· sqlite3_step()
· sqlite3_column()
· sqlite3_finalize()
· sqlite3_close()
这几个过程是概念上的说法,而不完全是程序运行的过程,如sqlite3_column()表示的是对查询获得一行里面的数据的列的各个操作统称,实际上在sqlite中并不存在这个函数。
1.sqlite3_open()
该函数用来打开数据库。在操作数据库之前,首先要打开数据库。这个函数打...
SQLite3阅读全文
2019-06-18 20:39
⁄ 工业·编程
⁄ 共 10936字
1、异步I/O模式
通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序。相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈。异步I/O后端是SQLite的一个扩展模块,允许SQLite使用一个独立的后台线程来执行所有的写请求。虽然这并不会减少整个系统的资源消耗(CPU、磁盘带宽等),但它允许SQLite在正在写数据库时立刻返回到调用者,从用户角度看,无疑提高了前端的响应速度。对异步I/O,写...
SQLite3阅读全文
2019-06-17 20:36
⁄ 工业·编程
⁄ 共 11906字
SQLite通过动态内存分配来获取各种对象(例如数据库连接和SQL预处理语句)所需内存、建立数据库文件的内存Cache、保存查询结果。
1、特性
SQLite内核和它的内存分配子系统提供以下特性:
(1)对内存分配失败的健壮处理。如果一个内存分配请求失败(即malloc()或realloc()返回NULL),SQLite将释放未关联的缓存页,然后重新进行分配请求。如果失败,SQLite返回SQLITE_NOMEM给应用程序。
(...
SQLite3阅读全文
2019-06-16 21:31
⁄ 工业·编程
⁄ 共 6786字
在SQLite中,锁和并发控制机制都是由pager.c模块负责处理的,用于实现ACID(Atomic、Consistent、Isolated和Durable)特性。在含有数据修改的事务中,该模块将确保所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘文件的内存Cache功能。
事实上,pager模块并不关心数据库存储的细节,如B-Tree、编码方式、索引等。它只是将其视为由统一大小(通常为1024字节)的数据块构成的单一文件,其中每个块被称为一...
SQLite3阅读全文
2019-06-15 20:27
⁄ 工业·编程
⁄ 共 7615字
一、7种临时文件
SQLite中,一个数据库由单个磁盘文件构成,简化了SQLite的使用,因为移动或备份数据库只要拷贝单个文件即可。这也使得SQLite适合用作应用程序文件格式。但是,当在单个文件中存储一个数据库时,SQLite会在处理数据库的过程中使用许多临时文件。
SQLite目前使用7种不同类型的临时文件:
* 回滚日志(Rollback journals)
* 主日志...
SQLite3阅读全文