У меня возникла следующая проблема: Когда я пытаюсь увеличить один столбец моей таблицы mysql, значение не синхронизируется при высокой загрузке трафика.
Задача делится на две вещи, увеличивая столбец и добавляя новую строку
к другому столу. Поэтому, если я добавлю 100 строк, счетчик должен остаться на 100.
На высоких нагрузках, например 100 запросов / с доходит до проблем со счетчиком, я получил
80 на значении счетчика, но добавлено 120 строк.
//This is the current increment routine build with an Yii ActiveRecord Class
$id = 123;
$dataRow = ActiveRecordModel::model()->findByPK($id);
$dataRow->counter +=1;
$dataRow->save();
//Add the row
$row = new ActiveRecordModelRow();
$row->operatingSystem = 1;
$row->save();
Я думаю, что проблема в том, что некоторые запросы обрабатываются быстрее, чем другие, и, возможно, переопределяют значения. Надеюсь, что кто-то может помочь мне указать мне правильное направление или предложить решение этой проблемы.
Лучший,
Nils
Разве вы не можете использовать поле автоинкремента в mysql, чтобы база данных обрабатывала инкремент, а не PHP. Не имеет значения, сколько времени займет обработка, поскольку целое число будет установлено при вставке записи.
Других решений пока нет …