sqlite
zhaofuguang
这个作者很懒,什么都没留下…
展开
-
Sqlite (一)性能测试
测试目标获取SQlite的常规性能指标测试环境CPU:8核,Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz内存:16G磁盘:SSDLinux 2.6.32SQlite最新版本3.8.11测试场景1) 主键查询测试2) 主键更新测试3) 批量导入测试初始化1) 测试表结构CREATE TABLE u...转载 2019-06-13 18:08:36 · 6137 阅读 · 0 评论 -
Sqlite (二)性能测试
WAL是SQLite3.7.0版本引入的一个重大改进。SQLite官网宣称在很多使用场景下,WAL模型的性能都要好于默认的DELETE模式。下面将针对几个主要场景对WAL性能做测试,测试的硬件与xxx保持一致。纯写场景1) 测试说明 测试简单更新事务在WAL模式下与DELETE日志模式性能对比,测试语句形如:update user set c1=c1+1 where id=...转载 2019-06-13 18:12:22 · 1828 阅读 · 0 评论 -
Sqlite (三)WAL原理
Sqlite学习笔记(三)&&WAL性能测试中列出了几种典型场景下WAL的性能数据,了解到WAL确实有性能优势,这篇文章将会详细分析WAL的原理,做到知其然,更要知其所以然。WAL是什么 WAL(Write ahead logging)是一种日志模式,它是一种思想,普遍应用于关系型数据库。每个事务执行变更时,修改数据页,同时会产生日志,这样在事务提交后,不需要将...转载 2019-06-13 18:17:17 · 1892 阅读 · 0 评论 -
Sqlite (四)锁机制
概述 SQLite虽然是一个轻量的嵌入式数据库,但这并不影响它支持事务。所谓支持事务,即需要在并发环境下,保持事务的ACID特性。事务的原子性,隔离性都需要通过并发控制来保证。那么Sqlite的并发控制是怎样的,如何实现,在这里跟大家分享下我的理解。 SQLite是一个文件数据库,所有的数据都在一个db文件中,对于wal模式,还包含wal索引文件和wal日志文件。SQlit...转载 2019-06-13 18:19:51 · 4159 阅读 · 0 评论 -
Sqlite (五)共享缓存
介绍 通常情况下,sqlite中每个连接都会一个独立的pager对象,pager对象中管理了该连接的缓存信息,通过pragma cache_size指令可以设置缓存大小,默认是2000个page,每个page是1024B。这样导致了对于同一个数据文件,多个连接各自维护了自己的一份缓存,在高并发情况下,可能导致使用大量的内存。而sqlite作为一个嵌入式数据库,通常用于嵌入式设备,内...转载 2019-06-13 18:21:11 · 4307 阅读 · 0 评论 -
Sqlite (六)事务处理
说到事务一定会提到ACID,所谓事务的原子性,一致性,隔离性和持久性。对于一个数据库而言,通常通过并发控制和故障恢复手段来保证事务在正常和异常情况下的ACID特性。sqlite也不例外,虽然简单,依然有自己的并发控制和故障恢复机制。Sqlite学习笔记(五)&&SQLite封锁机制 已经讲了一些锁机制的原理,本文将会详细介绍一个事务从开始,到执行,最后到提交所经历的过程,其中会穿插...转载 2019-06-13 18:22:28 · 2296 阅读 · 0 评论 -
Sqlite (七)核心API
概述 SQLite提供了一系列接口供用户访问数据库,主要包括连接数据库,处理SQL,迭代查询结果等。本文会针对我们使用SQLite的主要场景,列出核心的API,详细介绍API的用法并给出代码用例。1.打开关闭数据库sqlite3_open_v2原型:int sqlite3_open_v2(const char *filename, /* Database filename ...转载 2019-06-13 18:25:07 · 295 阅读 · 0 评论