我正在使用一个SQLite3数据库i WAL模式。 pragma语句同步的默认模式是2(完整),但是这使得插入非常慢并且根据documentation 1(正常)应该没问题。
只要数据库处于打开状态,更改同步模式就会起作用,但在连接结束时似乎会重置:
root@linux:~# sqlite3 mydb.db
SQLite version 3.8.6 2014-08-15 11:46:33
sqlite> pragma synchronous;
2
sqlite> pragma synchronous=1;
sqlite> pragma synchronous;
1
sqlite>[exit]
root@linux:~# sqlite3 mydb.db
SQLite version 3.8.6 2014-08-15 11:46:33
sqlite> pragma synchronous;
2
没有其他人在使用数据库。任何人都可以告诉我如何使这种变化持久吗?
另外,设置pragma synchronous
和pragma [database name].synchronous
之间有什么区别?顺便说一下,两者都不是持久的。
答案 0 :(得分:7)
与大多数其他PRAGMA一样,此设置不适用于数据库,而适用于数据库 connection 。
不能坚持不懈。每当打开数据库时都必须创建它。