0

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

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

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

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

4

2 回答 2

0

使用东京内阁的表格数据库。

于 2010-11-15T11:54:19.370 回答
0

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

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

知道您将要执行此操作,您可以使用$sth->fetchall_arrayref()$sth->fetchall_hashref()

于 2010-10-30T01:53:21.353 回答