Как вариант, добавлять все поля.
Но в тех, по которым фильтровать не нужно - указывать is not null.
Ну и индекс, это позволит использовать один индекс на таблицу.
таблица users,
по ней нет сортировки, соответственно, строки извлекаются в порядке вставки.
если в from использовать posts - по-идее, разница должна исчезнуть.
Select p.* from prices p
Join (select max(price_date) price_date, shop_id, prod_id from prices group by prod_id, shop_id) b using(price_date, shop_id, prod_id)
Табличка уже существует.
Переименуй её и накати дамп.
Подумай, нужны ли данные из старой?
Нужны - как-нибудь смержи данные и удали старую.
Нет - удали старую сразу.
Connect err намекает, что с базой соединиться не удалось.. Неплохо бы устранить эту проблему. Ну и обрабатывать как-то более активно, чем кинуть в лог и забыть