SQLite3数据库连接,在WAL模式下创建(如下所示)允许多个线程通过单个连接读取数据。此模式极大地增强了任何Web应用程序的读取可伸缩性。
import sqlite3
db = sqlite3.connect('mydb.sqlite3')
db.execute('pragma journal_mode=wal')
有关详情,请参阅Going Fast with SQLite and Python
我正在使用Flask中的Web应用程序,其中SQLite3用于持久性,因为很少有用户会对数据库进行更新。然而,将有很多用户将阅读内容。所以我认为WAL模式下的数据库将大大提高这个应用程序的读取性能。
根据Flask documentation,每个请求都会打开/关闭SQLite3数据库连接。对于更新数据库(即编写器)的连接,这种方法似乎很好。但对于选择(即读者),这种为每个请求打开和关闭连接的方法似乎是有限的。
有人可以指导我如何在Flask中以WAL模式运行共享的SQLite3数据库(仅限选择)吗? (python 3上的版本0.12.2)