2010-10-02 43 views
0

我已經成功地使用SQLite作爲我的Web應用程序的數據存儲,但現在我正在使用mod_perl實現一個網站,並且正在運行數據庫鎖定問題。使用SQLite與mod_perl

正如所料,當Web服務器啓動時,我的整個Web應用程序都由Plack Apache處理程序(Plack :: Handler :: Apache2)加載。那麼,第一個數據庫查詢會在整個數據庫上創建一個鎖,並且任何後續的必須修改數據庫的查詢都會失敗。

我的出路是什麼?我可以在持久性Web環境中使用SQLite嗎?我應該在尋找其他數據庫商店嗎?

我不是MySQL的粉絲,也不想使用它。我可能會使用PostGres,但我寧願使用輕量級的東西,最好使用基於SQL的東西櫃等鍵/值數據庫,這需要學習一種全新的方式。我寧願真的使用SQLite。

回答

0

如果您有一個打開的數據庫句柄,它可能會導致此問題。在日誌過程中迭代結果集導致鎖定停滯不前時,我遇到了問題。

嘗試並提取查詢的所有行並呼叫$sth->finish()清除鎖定。您將使用更多內存,但您將避免鎖定。

知道你要做到這一點,你可以利用$sth->fetchall_arrayref()$sth->fetchall_hashref()

0

使用東京內閣表數據庫。