如何高效地向SQLite导入大量数据

如果想把数据文件(如csv、txt)导入SQLite,我通常使用以下两种方式:
1、pandas读取后数据文件后,使用to_sql写入数据库;
2、使用SQLiteStudio,创建表格,再向表格导入数据。

当数据量较大的时候(百万),这两种方式相当慢。今天找到一种新方式,使用官网提供的SQLite.exe。下面详细介绍如何使用。

一、下载SQLite.exe

下载地址:http://www.sqlite.org/download.html
网上很多信息都过时了,今天研究了一下,下载图中圈起来那个文件,解压后,SQLite.exe就在里面了。

如何高效地向SQLite导入大量数据_第1张图片

二、准备工作

1、在数据库中创建一个表格,制定好表格各列的属性(可使用SQLiteStudio)。

2、打开CSV文件,删除第一行(表头)。因为数据量很大,需要用EmEditor打开,把"去除掉,可以另存为txt。如果文件中有中文,记得要选择UTF-8编码,否则导入后是乱码。保存在数据库所在的文件夹。

3、把SQLite.exe复制到数据库所在的文件夹中。

三、打开SQLite.exe

执行以下指令。

sqlite> .open database.db   #打开数据库
sqlite> .database    #用于验证:显示目前连接的数据库路径
main: D:\python test\SQLite\DB\database.db
sqlite> .table    #用于验证:显示这个数据库有哪些表格
tableA
sqlite> .separator ","  #指定分隔符为","
sqlite> .import importdata.txt tableA   # .import FileName TableName

回车后就开始导入数据,两百多万的数据不到一分钟就导完了。导完后通过SQLiteStudio打开,确认是否成功。

记住每个指令前面都有一个“.”
.help可调出所有指令说明。

四、SQLite.exe导入中文的乱码问题

导入文件需保存为UTF-8编码方式。

你可能感兴趣的:(如何高效地向SQLite导入大量数据)