Search by WMSN

SQLite3 база постоянно залочена. Мик, подскажи что делать? Удаление временных файлов поможет? сами они не удаляются. #sqlite

Answers:

Это не в доргене если что ))

Удалять временные нельзя. Похеришь данные которые там, а может и основную базу. Подожди некоторое время, чтоб если какие процессы php туда пишут чтоб завершились. Потом перезагрузи сервер, локи снимутся. Это самый простой вариант ))) я хз где искать лок-файл, гдето в tmp папках, отведенных для временных файлов php.

Mik Foxi, как все просто. Сработало! И что при любых косяках так сервер ребутить теперь?

Atom, а ты не косячь ))) скрипт что-то парсит курлом?

Mik Foxi, есть решение?

Mik Foxi, да, парсинг curl из php.

Есть некоторый костыль. Делаешь сначала парсинг, если прошло все норм - только потом уже открываешь базу. Так получается спасти базу от лока изза зависшего курла. Но подвисшие php процессы все равно могут скапливаться.

Atom, locking_mode у тебя какой? в БД пишешь через транзакции?

Роман Питерский, journal_mode=WAL скорее всего.

sqlite - зло, я уже говорил ? все в файлах, все в файлах..

Роман Питерский, journal_mode=WAL, на вставке большого количества данных транзакции использую, если нужно вставить 1 инверт, то без транзакций. Думаешь надо и единичные инсерты оборачивать транзакциями?

jkeks, sqlite - это тоже файл ))))

jkeks, я еще помню те времена, когда Мик тоже любил файлы.

jkeks, sqlite это во многом оптимальный вариант между файлами и mysql.

Atom, единичные не надо в транзакции пихать.

Atom, я спрашивал о locking_mode ) для себя вывел оптимальное к-во записей в транзакции порядка 10к