See You Again

重新编译 sqlite 提高性能

SQLite 默认的配置性能比较差,可以通过编译时修改几个参数明显提升性能,代价是牺牲一定的数据可靠性。

PRAGMA SYNCHRONOUS OFF

关闭 “回滚日志同步” 选项。

风险是在系统崩溃、异常断电时数据会有损坏;SQLite 崩溃时会有数据完整性问题。

在服务器比较稳定,且业务对数据可靠性要求不高对情况下使用。记得要定期备份数据哦。

PRAGMA LOCKING_MODE EXCLUSIVE

定义加锁模式。

文件操作的系统调用会减少,也会独占一个数据库连接(防止其他进程修改)。

编译参数

修改以上两个参数,预计可以获得 10 倍的性能提升。

  1. CFLAGS='-DSQLITE_DEFAULT_LOCKING_MODE=1 -DSQLITE_DEFAULT_SYNCHRONOUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=0' ./configure
  2. make
  3. make install

查看 django 的数据库连接情况,相关的参数已经改了: python3 manage.py dbshell

  1. SQLite version 3.32.3 2020-06-18 14:00:33
  2. Enter ".help" for usage hints.
  3. sqlite> PRAGMA SYNCHRONOUS;
  4. 0
  5. sqlite> PRAGMA LOCKING_MODE;
  6. exclusive

PS:SQLite 还是挺香的,简单方便,读性能好,资源占用小。对于可靠性要求一般的中小型项目,推荐使用。

参考文章:

2020-07-02 喜欢

Copyright © 2015-2020 BY-NC-ND 4.0

回到顶部 ↑