Как мне иногда писать в базу данных sqlite с частыми читателями? Я использую PHP, но это не имеет большого значения. Я понимаю, что query() вернет SQLITE_BUSY
, и я могу попробовать еще раз, и что я могу позвонить busyTimeout
, но я надеюсь, что есть встроенный способ сообщить базе данных, чтобы она сама осталась. Сейчас я использую:Каков правильный способ реализации производителя/потребителя с SQLite3?
function wait_query_db($db, $query) {
do {
$db->busyTimeout(1000);
$result = @$db->query($query);
} while ($db->lastErrorCode() == SQLITE_BUSY);
return $result;
}
Действительно, все DMS запускаются с параметрами, определенными DBA – Kyle
Часто читатели или писатели? Потому что в SQLite у вас может быть теоретически неограниченное количество читателей. Ваша БД должна быть заблокирована во время записи, для записи –
«Как мне иногда писать в базу данных sqlite с частыми читателями?» В принципе, записи нечасты, но может занять несколько минут, но чтение является частым и очень быстрым. – Andy