将SQLite与mod_perl一起使用

时间:2010-10-02 16:31:50

标签: sqlite mod-perl

我已成功将SQLite用作我的Web应用程序的数据存储,但现在我正在使用mod_perl实现一个网站,并且遇到了数据库锁定问题。

正如预期的那样,当Web服务器启动时,我的整个Web应用程序由Plack Apache处理程序(Plack :: Handler :: Apache2)加载。好吧,第一个db查询会在整个数据库上创建一个锁,并且任何必须修改db的后续查询都会失败。

我的出路是什么?我可以在持久的Web环境中使用SQLite吗?我应该寻找其他数据库商店吗?

我不是MySQL的粉丝,也不想使用它。我可能会使用PostGres,但我宁愿使用轻量级的东西,最好是基于sql的,因为使用像Tokyo Cabinet这样的键/值数据库需要学习一种全新的方式。我宁愿真正使用SQLite。

2 个答案:

答案 0 :(得分:0)

如果您有数据库的打开句柄,则可能导致此问题。在日志过程中迭代结果集导致锁定时,我遇到了问题。

尝试并获取查询的所有行,并调用$sth->finish()以清除锁定。你会使用更多的内存,但你会避免锁定。

知道你要这样做,你可以使用$sth->fetchall_arrayref()$sth->fetchall_hashref()

答案 1 :(得分:0)

使用Tokyo Cabinet的表数据库。