手上的Android项目把数据库放在sd卡上操作,之前一直用2.2的模拟器,昨天拿到2.3的htc真机之后开测。出现一个奇怪的问题,就是当我操作数据库后会生成两个跟数据库名一样后缀分别为-shm和-wal的文件。不知道是什么玩意就google了一下!!!
最后在sqlite官网(http://www.sqlite.org/fileformat2.html)发现了这个说明
其中-wal的文件意思是write-ahead log,顾名思义就是保存的一个日志。。。3.7的sqlite之后开始这个功能,当一个数据库采用WAL模式,所有连接数据的操作都必须使用WAL,然后在在数据库文件夹下生成一个后缀为-wal的文件保存操作日志,我打开看了之后发现里面内容更象一份数据库的备份文件,大小比数据库有时还大;
4.0 The Write-Ahead Log
Beginning with version 3.7.0, SQLite supports a new transaction control mechanism called "write-ahead log" or "