Дмитрий Лабутин: Если взять именно RabbitMQ, то у него нет нормального способа отозвать сообщение из очереди, разве что использовать Management Plugin с Rest API. Но и у Workera в RabbitMQ нет способа просмотреть очередь и получить полный список сообщений, так что остаётся обрабатывать всё подряд.
Всё здесь в порядке с JOIN'ами, фильтруется по левой части, а значит записи с moc.manufacturer_id = 128 будут выбраны независимо от наличия записей с maf.manufacturer_id = 128.
Вячеслав Беляев: Нет. Обычный индекс может повлиять только на скорость выполнения запросов. Он замедляет INSERT/UPDATE запросы, если меняется поле, включённое в какой-либо из индексов и ускоряет SELECT, если сервер способен использовать этот индекс для ограничения выборки или быстрой сортировки.
Вячеслав Беляев: Уникальность здесь неважна, всё равно при использовании индекса перебор сокращается.
А условие a.status = 1 у Вас и так есть во WHERE.
Вячеслав Беляев: Они просто не используются в запросе, поэтому EXPLAIN их не показывает. Например ankets находится в левой части JOIN'а то есть к текущей строке ankets добавляются строки других таблиц, поэтому ankets.id в ON используется без индексов.
Что касается остальных - посмотрите, например, на LEFT JOIN anket_user. Сейчас для каждой строки ankets перебираются все строки anket_user в попытке удовлетворить условию ON. Если добавить индекс на anket_user.anketa, то он будет использоваться и время выполнения сократится.
Аналогично, если для ankets составить комбинированный индекс (`status`, `delete`), то вместо перебора всех строк этот индекс, скорее всего, будет задействован и сразу будут выбраны нужные строки во WHERE.
Вячеслав Беляев: Теперь смотрите, у Вас есть строки, где possible_keys нулевые, это значит, что надо попробовать добавить индексы на поля этих таблиц, которые встречаются в условиях ON и WHERE.
kozlovskydan: Так а конкретное значение атрибута как к объекту привязано? Откуда можно получить, что для объекта 1 используется атрибут 3 со значением "ГАЗ"?
junk1114: Как всегда, берём значение нулевого элемента и перебираем все следующие элементы. Нашли меньший, запомнили его индекс и значение. Дошли до конца - всё, индекс известен.
voiceofnoise:
character_set_database | latin1
character_set_server | latin1
Соответственно все базы, таблицы и колонки создаются по умолчанию в кодировке latin1.