Проблема после обновления mysql до версии 5.6

Ответить
Makioro
Сообщения: 241
Зарегистрирован: Ср апр 27, 2011 11:09 am

Проблема после обновления mysql до версии 5.6

Сообщение Makioro »

После обновление Mysql до 5.6 мы столкнулись со следующей проблемой: клиенты не могут войти в свой кабинет. Оказалось, что при этом бесконечно долго выполняется запрос:
SELECT o.invoice_id, o.orders, o.unit, o.counts, o.price, o.fees_id
FROM docs_invoice_orders o
WHERE.
o.invoice_id IN.
(
SELECT d.id
FROM.
(docs_invoices d, docs_invoice_orders o).
LEFT JOIN users u ON (d.uid=u.uid)
LEFT JOIN admins a ON (d.aid=a.aid)
LEFT JOIN docs_invoice2payments i2p ON (d.id=i2p.invoice_id)
LEFT JOIN payments p ON (i2p.payment_id=p.id)
LEFT JOIN companies c ON (u.company_id=c.id)
WHERE u.uid='4448'
);

После анализа выяснили, что вложенный подзапрос ( IN (SELECT ….)) может возвращать набор 84000 записей, уникальными значением в котором только 3. Непонятным осталась роль таблицы docs_invoice_orders o ( docs_invoices d, docs_invoice_orders o). Она не участвует ни в каких соединениях в подзапросе и условиях WHERE и приводит к декартовому произведению. Удаление этой таблицы из списка выборки приводит к нормальной работе основного запроса

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Проблема после обновления mysql до версии 5.6

Сообщение ~AsmodeuS~ »

спасибо поправили

Ответить