SQLite 默认的配置性能比较差,可以通过编译时修改几个参数明显提升性能,代价是牺牲一定的数据可靠性。
关闭 “回滚日志同步” 选项。
风险是在系统崩溃、异常断电时数据会有损坏;SQLite 崩溃时会有数据完整性问题。
在服务器比较稳定,且业务对数据可靠性要求不高对情况下使用。记得要定期备份数据哦。
定义加锁模式。
文件操作的系统调用会减少,也会独占一个数据库连接(防止其他进程修改)。
修改以上两个参数,预计可以获得 10 倍的性能提升。
CFLAGS='-DSQLITE_DEFAULT_LOCKING_MODE=1 -DSQLITE_DEFAULT_SYNCHRONOUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=0' ./configure
make
make install
查看 django 的数据库连接情况,相关的参数已经改了: python3 manage.py dbshell
SQLite version 3.32.3 2020-06-18 14:00:33
Enter ".help" for usage hints.
sqlite> PRAGMA SYNCHRONOUS;
0
sqlite> PRAGMA LOCKING_MODE;
exclusive
PS:SQLite 还是挺香的,简单方便,读性能好,资源占用小。对于可靠性要求一般的中小型项目,推荐使用。
参考文章:
Copyright © 2015-2022 BY-NC-ND 4.0