在多线程中使用sqlite太恶心了

    万万没有想到sqlite模块在多线程中有问题,只能被创建sqlite连接的线程使用,其他线程根本就不能使用!否则必然报错误,太恶心了。现在看来唯一的办法是在每个线程中都创建一个连接,每个线程自己操作数据库。这个每个线程中的连接,可以用连接池的方式事先创建好,也可以每次操作的时候重新建立。
  由此看来,当在python中要使用嵌入式数据库就一定要考虑并发、多线程的情况,这方面sqlite实在是不怎么样。那剩下的选择就是要么使用没有sql语言支持的bsddb模块,要么使用metakit 或者firebird 。
  metakit貌似是个不错的数据库模块,性能也很好,但我没有怎么使用过。
  firebird是个很好的数据库,以前borland的interbase开源后的产品,勉强能和mysql, postgresql一起称为开源的三大数据库。firebird也支持嵌入,并且可以很容易的把数据从嵌入转到数据库服务器的模式。python使用firebird的模块叫kinterbasdb,在sourceforge能找到。这个应该不错。

你可能感兴趣的:(Python其他)