sqlite3 多线程和锁 ,优化插入速度及性能优化

一、 是否支持多线程?   SQLite官网上的“Is SQLite threadsafe?”这个问答。 简单来说,从3.3.1版本开始,它就是线程安全的了。而iOS的SQLite版本没有低于这个版本的,当然,你也可以自己编译最新版本。 不过这个线程安全仍然是有限制的,在这篇...

2018-01-29 11:54:00

阅读数:323

评论数:0

sqlite3查看select使用什么索引

eg: CREATE TABLE Person (id integer primary key, name text, age integer default 5); CREATE INDEX index_age on Person (age); EXPLAIN QUERY PLAN  ...

2016-02-04 18:04:16

阅读数:2269

评论数:0

Sqlite3 子查询的规则

以下是子查询必须遵循的几个规则: 子查询最好用括号括起来。 子查询在 SELECT 子句中只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较。 ORDER BY 不能用在子查询中,虽然主查询可以使用 ORDER BY。可以在子查询中使用 GROUP BY...

2016-02-04 17:24:37

阅读数:1075

评论数:0

sqlite3 join

sqlite3 定义了三种主要类型的连接: 交叉连接 - CROSS JOIN (笛卡尔积 x*y) 内连接 - INNER JOIN    (默认是内连接,  inner 可以省略, 左右表都满足条件才显示) 外连接 - OUTER JOIN (sqlite3只...

2016-02-04 17:03:47

阅读数:535

评论数:0

sqlite3 的约束

有以下5种 NOT NULL 约束:确保某列不能有 NULL 值。 DEFAULT 约束:当某列没有指定值时,为该列提供默认值。 UNIQUE 约束:确保某列中的所有值是不同的。 PRIMARY Key 约束:唯一标识数据库表中的各行/记录。 ...

2016-02-04 16:02:54

阅读数:688

评论数:0

sqlite3 limit 使用limit

语法 带有 LIMIT 子句的 SELECT 语句的基本语法如下 select column1, column2, columnN from tableName limit rows; select column1, column2, column...

2016-02-04 15:31:29

阅读数:6028

评论数:0

Sqlite3 like和glob的区别

like不区分大小写, glob区分大小写 like:  百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。 glob: 星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。 eg: select * from ...

2016-02-04 15:17:45

阅读数:2087

评论数:0

Sqlite3 批量插入

eg:  CREATE TABLE Person (id integer primary key, name text); CREATE TABLE P('name'); insert into P('name') values ('Ansel'), ('Joy'),('Lili'); i...

2016-02-04 14:23:11

阅读数:1079

评论数:0

iOS学习之sqlite的创建数据库,表,插入查看数据

iOS sqlite数据库操作。步骤是: 先加入sqlite开发库libsqlite3.dylib, 新建或打开数据库, 创建数据表, 插入数据, 查询数据并打印 1、新建项目sqliteDemo,添加使用sqlite的库libsqlite3.dylib ...

2015-10-20 15:24:32

阅读数:1023

评论数:0

SQLite 约束 Constraints

SQLite 约束 Constraints 一、约束 Constraints 在上一篇随笔的结尾,我提到了约束, 但是在那里我把它翻译成了限定符,不太准确,这里先更正一下,应该翻译成约束更贴切一点。 那么什么是约束呢? 我们在数据库中存储数据的时候,有一些数据有明...

2015-07-17 14:15:24

阅读数:3589

评论数:0

提升SQLite数据插入效率低、速度慢的方法

前言 SQLite数据库由于其简单、灵活、轻量、开源,已经被越来越多的被应用到中小型应用中。甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作。因此我最近编写有关遥感数据处理的程序的时候,也将SQLite引入进来,以提高数据的结构化程度,并且提高大数据的处理能力(SQLite最高...

2015-06-23 16:29:31

阅读数:41727

评论数:15

解决sqlite3插入数据很慢的问题

初用sqlite3插入数据时,插入每条数据大概需要100ms左右。如果是批量导入,可以引进事物提高速度。但是假设你的业务是每间隔几秒插入几条数据,显然100ms是不能容许的。解决办法是,在调用sqlite3_open函数后添加下面一行代码:     sqlite3_exec(db, &quo...

2015-06-23 16:29:11

阅读数:7076

评论数:0

sqlite constraint

sqlite3中的约束如下: CREATE TABLE CheckTable (rowId integer primary key autoincrement, name text not null, address text default "China",  userId...

2015-06-23 08:34:12

阅读数:2271

评论数:2

ios开发FMDB导入SQLCipher加密数据库

工程用得FMDB做数据库的操作,后期要对数据库做加密,这里有两种方法: 1.对数据库内容加密,存的时候加密,用得时候解密。 2.直接对数据库文件加密。 这里我选择了第二种,原因不细说,自己决定。 百度后,决定用SQLCipher,而且FMDB是支持SQLCiph...

2015-06-18 15:57:32

阅读数:1551

评论数:0

ios开发FMDB导入SQLCipher加密数据库

程用得FMDB做数据库的操作,后期要对数据库做加密,这里有两种方法:      1.对数据库内容加密,存的时候加密,用得时候解密。      2.直接对数据库文件加密。      这里我选择了第二种,原因不细说,自己决定。      百度后,决定用SQLCiph...

2015-06-18 15:52:19

阅读数:1738

评论数:0

sqlite3 alter table

sqlite3 alter table只支持两个 1.alter table tableName rename to  newTableName; 2.alter table tableName add column columnName integer(类型);

2015-06-17 09:41:45

阅读数:1793

评论数:0

ios 控制数据库的版本号

1.查询版本号 PRAGMA user_version   1.设置版本号 PRAGMA user_version =  %d; - (uint32_t)userVersion  {     uint32_t r = 0;          FMResultSet *r...

2015-06-01 12:14:47

阅读数:1652

评论数:0

sqlite获取表信息

iOS获取表信息

2015-06-01 12:08:39

阅读数:799

评论数:0

SQLite Pragma语法

pragma: 1.pragma auto_vacuum = 0|1 设置自动缩放文件 2.PRAGMA cache_size = Number-of-pages; 查询或修改SQLITE,一次存储在内存中的数据库文件页数。 改变只是对当前会话有效,关闭数据库时。无效 3.PRAGMA ...

2015-06-01 11:21:17

阅读数:3232

评论数:0

SQLite中的PRAGMA语句攻略

原文地址:http://iihero.iteye.com/blog/1189633   PRAGMA语句是SQLITE数据的SQL扩展,是它独有的特性,主要用于修改SQLITE库或者内数据查询的操作。它采用与SELECT、INSERT等语句一样的形式来发出请求,但也有几个重要的不同: ...

2015-06-01 11:07:36

阅读数:415

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭