В общем есть 2 сервера, с одного второй забирает данные, парсит, и сохраняет в базу. Заметили, что начали появляться дублирующие записи. Дублей может быть сколько угодно. Начал грешить на клиент выводящий записи, посмотрел, через phpMyAdmin базу, все ок (вернее не ок :) ), в базе действительно дубликаты. Сделал сохранение пришедших с первого сервера данных + sql который отправляется в базу. Сейчас смотрю лог, в пришедших данных, в sql дублей нет, в базе дубли имеются…
Я зашел в тупик, подскажите хотя бы куда можно копнуть, что еще проверить.
Выше уже подсказали решение.
От себя добавлю, что в вашем случае составной ключ не нужен, достаточно одного unique-индекса для поля 'id', если конечно его название соответствует содержанию).
Как-то так: ALTER TABLE progstat ADD UNIQUE INDEX (id)
У меня было сомнение по поводу добавления еще одного индекса. так как id это AUTO_INCREMENT с ключом PRIMARY. В итоге я добавил, и получил от phpMyAdmin «Следующие индексы определены как идентичные, и один из них должен быть удален: PRIMARY, id»
Может у вас нейким образом образуется несколько потоков (процессов)? например скрипт срабатывает по крону раз в минуту, а сам скрипт выполняется больше одной минуты. или что-то ещё