随笔分类 - SQLite
摘要:我用过的数据库 sqlite realm mysql coredata
阅读全文
摘要:/* ** CAPI3REF: Prepared Statement Object ** KEYWORDS: {prepared statement} {prepared statements} ** ** An instance of this object represents a single
阅读全文
摘要:https://www.sqlite.org/vfs.html https://www.sqlite.org/vfs.html
阅读全文
摘要:BEGIN TRANSACTION BEGIN TRANSACTION begin-stmt: hide commit-stmt: hide rollback-stmt: hide No changes can be made to the database except within a tran
阅读全文
摘要:一、概述: 在SQLite中,锁和并发控制机制都是由pager_module模块负责处理的,如ACID(Atomic, Consistent, Isolated, and Durable)。在含有数据修改的事务中,该模块将确保或者所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘
阅读全文
摘要:存疑: sqlite3_prepare 应该是语言解析模块的功能,而不是pager模块的功能 https://www.cnblogs.com/feng9exe/p/10712154.html 一、 是否支持多线程? SQLite官网上的“Is SQLite threadsafe?”这个问答。 简单来
阅读全文
摘要:Introduction This document describes the architecture of the SQLite library. The information here is useful to those who want to understand or modify
阅读全文
摘要:该系列的前面一些文章我重点讲了sqlite的核心功能,比如封锁机制,共享缓存,以及事务管理等。但对于sqlite的整体没有作一个全面的介绍,本文将从实现的层面,整体介绍sqlite的框架、各个核心模块以及功能。后续再针对核心模块作进一步的分析。我们说sqlite是一个关系型的嵌入式数据库。提到关系型
阅读全文
摘要:概述 通过上一篇文章的分析,我们知道了pager模块在整个sqlite中所处的位置。它是sqlite的核心模块,充当了多种重要角色。作为一个事务管理器,它通过并发控制和故障恢复实现事务的ACID特性,负责事务的原子提交和回滚;作为一个页管理器,它处理从文件中读写数据页,并执行文件空间管理工作;作为日
阅读全文
摘要:1. Summary The following two objects and eight methods comprise the essential elements of the SQLite interface: sqlite3 → The database connection obje
阅读全文
摘要:http://huili.github.io/B-treeImplementation/hierarchicalorganization.html SQLite中的B-tree SQLite中每个数据库完全存储在单个磁盘文件中,因为B树进行数据的查找、删除、添加速度快,所以这些数据以B树数据结构的形
阅读全文
摘要:(1)编译阶段 这几种模式可以通过参数SQLITE_THREADSAFE在编译阶段指定,可以取值0,1,2,默认是1。这三种取值的含义如下: 0:单线程模式,即内部不做mutex保护,多线程运行sqlite不安全。 1:多线程的串行模式,sqlite帮助多线程实现串行化。 2:多线程的并发模式,要求
阅读全文
摘要:通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context)。这个上下文是一段位于服务器端的内存:记录了本次连接的所有相关状态和运行数据. 连接(Connection):连接是从客户端到ORACLE实例的一条物理路径。连接可以在网络上建立,或者在本机通过IPC机
阅读全文
摘要:在今天的商业应用中,主要有两种基本类型的DBMS(数据库管理系统)存储管理器: (1)DBMS直接与底层的面向磁盘的块模式设备驱动程序进行交互(通常称为原始模式访问); (2)DBMS使用标准的OS文件系统设施.这个决定会在空间和时间上同时影响DBMS控制存储能力. SQLite文件存储管理主要由B
阅读全文
摘要:简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。它的设计目标是嵌入式的,目前Android和iOS的设备内置的都是SQLite数据库。SQLite虽然娇小,但也支持事务和多数的SQL92标准。 主要特点 Zero-Configuration 无需安装和管理配置。 Ser
阅读全文
摘要:original SQL text <sqlite3_prepare_v2> >sqlite3_stmt--<sqlite3_reset>-->clear sqlite3_stmt --<sqlite3_bind_*(stmt,1,*)>--> configed sqlite3_stmt --<sq
阅读全文
摘要:提到锁就不得不说到死锁的问题,而SQLite也可能出现死锁。下面举个例子:连接1:BEGIN (UNLOCKED)连接1:SELECT ... (SHARED)连接1:INSERT ... (RESERVED)连接2:BEGIN (UNLOCKED)连接2:SELECT ... (SHARED)连接
阅读全文
摘要:本篇主要从SQLite事务执行的原理中寻找如何更高效地使用它。 本篇预备知识 我们先来了解下SQLite执行事务的基本流程,状态变化过程,再分析怎么使用才更优。SQLite定义的锁的状态有如下几种: UNLOCK:最初始状态,没有任何锁在数据库上; SHARED:共享状态,允许读取数据,但是不能写入
阅读全文
摘要:体系结构 在内部,SQLite由以下几个组件组成:内核、SQL编译器、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite的内核变得更加方便。所有SQL语句都被编译成易读的、可以在SQLite虚拟机中执行的程序集。SQLite支持大小高达2 TB的数据
阅读全文
摘要:SQLite 与线程 SQLite 是线程安全的。 线程模型 SQLite 支持如下三种线程模型 单线程模型 这种模型下,所有互斥锁都被禁用,同一时间只能由一个线程访问。 多线程模型 这种模型下,一个连接在同一时间内只有一个线程使用就是安全的。 串行模型 开启所有锁,可以随意访问。 设置线程模型 S
阅读全文