一、官网下载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,否则可能需要十几秒到半分钟的样子才能返回。