Задать вопрос
@tobut

Почему некоторые INSERT-ы не добавляются?

while(1) {
$PDO = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$PDO->exec("TRUNCATE TABLE fonbet");

foreach($data as $object) {
   $sql = "INSERT INTO fonbet (id, password, куча полей)  VALUES (:id, :password, куча значений)";
   $query = $PDO->prepare($sql);
   $query->execute(array(':id'=>$object->id, ':password'=>$object->password, куда соответствий));
}
}

Есть таблица ~100 строк, который обновляется примерно 2 раза в секунду. Поскольку данные разные, то приходится стирать ее и добавлять циклом данные. Проблема заключается в том, что после каждой такой операции в таблицу попадает от 0 до 100 процентов данных. Добавлю, что "куча полей" ~ 20.

Что касается нагрузки:
show processlist - не показывает очереди (субъективно, так как невозможно часто щелкать)
show status - pastebin.com/jyKz83qS (верхние записи почему-то вообще не показывает)
top -
PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 2342 root      20   0  172m  34m  13m S  32.6  6.9   7:01.99 php
 2248 mysql     20   0  890m 225m  15m S   6.3 45.7   0:54.46 mysqld


Буду рад любой помощи. Как минимум, мне кажется, что запрос можно составить более правильно.
UPD: Добавлю настройки my.cnf моего mysql-сервера - pastebin.com/qdFeQdr3 (всего 512 мб оперативной памяти)
  • Вопрос задан
  • 737 просмотров
Подписаться 2 Комментировать
Подписчики вопроса 2 К ответам на вопрос (2)