использование SQLite с mod_perl - PullRequest
       3

использование SQLite с mod_perl

0 голосов
/ 02 октября 2010

Я успешно использую SQLite в качестве хранилища данных для своих веб-приложений, но сейчас я внедряю веб-сайт с mod_perl и сталкиваюсь с проблемами блокировки базы данных.

Как и ожидалось, все мое веб-приложение загружается обработчиком Plack Apache (Plack :: Handler :: Apache2) при запуске веб-сервера. Первый запрос базы данных создает блокировку для всей базы данных, и любой последующий запрос, который должен изменить базу данных, завершается неудачей.

Какой у меня выход? Могу ли я использовать SQLite в постоянной веб-среде или нет? Стоит ли искать какой-нибудь другой магазин БД?

Я не фанат MySQL и не хочу его использовать. Я мог бы потенциально использовать PostGres, но я бы предпочел использовать что-то более легкое и предпочтительно основанное на sql, поскольку использование баз данных ключ / значение, таких как Tokyo Cabinet, потребовало бы изучения совершенно новым способом. Я бы предпочел использовать SQLite.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2010

Использовать таблицу таблиц Токийского Кабинета.

0 голосов
/ 30 октября 2010

Если у вас есть открытый дескриптор базы данных, это может вызвать эту проблему. У меня возникли проблемы, когда перебор набора результатов во время процесса журнала вызывает блокировку.

Попробуйте извлечь все строки для запроса и вызвать $sth->finish(), чтобы снять блокировку. Вы будете использовать немного больше памяти, но избежите блокировки.

Зная, что вы собираетесь это сделать, вы можете использовать $sth->fetchall_arrayref() или $sth->fetchall_hashref()

...