首页 > 代码库 > SQLite笔记

SQLite笔记

1、将INTEGER类型转成日期类型:
CreateDate为INTEGER类型

INSERT INTO tblTest(AccountId,UserName,CreateDate) VALUES({0},{1},strftime(‘%s‘,{2}));

转换的时候:

select datetime(CreateDate,‘localtime‘,‘unixepoch‘) from tblTest


2、在SQLite中,大数据用Join时非常慢,在此如果有多个表需要Join,解决方案是加载到内存中,然后再进行join,方案是:

2.1、数据量小的表join,再根据某个id进行排序操作,暂且称为T1

2.2、数据量大的直接查出到DataTable中,另外对Id排序操作,暂且称为T2
2.3、T1和T2根据排序后的id对比,添加到Table中即可。

 

3、在SQLite中插入大数据直接用Insert会非常慢,需要通过事务的方式插入,原理是生成批次的SQL,再提交。好处是,不需要每次都要Open()操作,减少链接。缺点时,插入数据会有所延迟,需要一点时间。

 

4、用delete删除表中的数据时,发现文件大小没有减少,解决方法是:在SQLiteCommand方法重载中加上"VACUM"标识,即可立即见效果。

e.g: DbCommand command = new SQLiteCommand("VACUUM", conn)

SQLite笔记