sqlite3使用速览

一、官网下载sqlite3

sqlite是款不错的数据库,使用方便,不需要事先安装软件,事先建表。

根据SQLite的官方提示:http://www.sqlite.org/limits.html
SQLIte数据库最大支持128TiB(140 terabytes, or 128 tebibytes, or 140,000 gigabytes or 128,000 gibibytes).

选择对应的平台包👉 SQLite Download Page

二、建立数据库、表

以test.db为库,company为表做示例。

打开cmd:键入以下命令:

# 建库
D:\sqlite3.exe  test.db
# 建表
sqlite> create table company(
   name text,
   phone text
);

注:必须建表后才会生成 test.db 文件

三、导入文本数据

导入大文本数据并加索引

sqlite> .separator ","    #假设txt里面的分隔符为“,”
sqlite> .import  test.txt company    #导入文件 txt 导入的表table,如果是csv就改成test.csv
# 等待执行完毕

四、根据需求添加索引

索引有助于加快 SELECT 查询和 WHERE 子句,但它会减慢使用 UPDATE 和 INSERT 语句时的数据输入。索引可以创建或删除,但不会影响数据。

# 创建单列索引
create index name_idx on company(name);
# 创建唯一索引
create unique index phone_uiq on company(phone);

五、查看库、表、表结构

# 查看库
.database
# 查看表
.table
# 查看具体表结构
.schema company
# 退出
.exit

六、存储数据(字段)的类型

NULL:标识一个NULL值
INTERGER:整数类型
REAL:浮点数
TEXT:字符串
BLOB:二进制数

SQLite极致性能提升方法:

  • 关闭同步,SYNCHRONOUS=Off,提升性能。添删改操作时不必同步等待写入磁盘,操作系统会延迟若干毫秒批量写入。
  • 设置WAL模式,Journal Mode=WAL,减少锁定。写入向前日志模式,避免多线程访问时锁定数据库,写入时不必使用排它锁影响其它线程读取,而是把事务操作写入到WAL文件中,延迟合并。
  • 加大缓存,CACHE_SIZE=5000,提升性能。操作系统通过文件映射MapFile把整个数据库文件映射进入内存,实际查询时会把用到数据所在附近页预先加载进入缓存,极大提升查询性能。
  • 查询速度,非首次查询,缓存命中以后,索引查询基本上都是毫秒级。数据库较大则相应加大缓存,速度不变。
  • 查记录数,单表数据超过一千万行以后,尽量不要使用Select Count,否则可能需要十几秒到半分钟的样子才能返回。
Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注