Проблемы с производительностью при объединении запросов с несколькими выборами [дублировать]MySql

Форум по Mysql
Ответить
Anonymous
 Проблемы с производительностью при объединении запросов с несколькими выборами [дублировать]

Сообщение Anonymous »

У меня есть 2 запроса с одинаковыми 3 связанными таблицами, и каждая из них работает отлично. Но в идеале я хотел бы объединить их в один запрос. Итак: < /p>
select me.id, me.title, me.start_date_time,
count(mti.checkin) from mco_event me
left outer join mco_ticket_instance as mti on mti.event_id = me.id and mti.checkin is not null
where me.start_date_time > '2024-01-01'
group by me.id order by me.start_date_time asc;
< /code>
Получает мне правильный счет чеков. < /p>
select me.id, me.title, me.start_date_time,
count(mol.status) from mco_event as me
join mco_ticket_instance mti1 on mti1.event_id=me.id
join mco_order_line mol on mol.id = mti1.order_line_id and mol.status='order_paid'
where me.start_date_time > '2024-01-01'
group by me.id order by me.start_date_time asc;
< /code>
Второй дает мне допустимый (order_paid) счет. Но если я комбинирую это: < /p>
select me.id, me.title, me.start_date_time,
(select sum(mol.quantity) from mco_order_line mol
inner join mco_ticket_type mtt on mol.ticket_type_id = mtt.id and mtt.event_id = me.id
where mol.status='order_paid') as quantity,
(select count(mti.checkin) from mco_ticket_instance mti
where mti.event_id = me.id and mti.checkin is not null) as checkins
from mco_event me
where me.start_date_time > '2024-01-01'
group by me.id order by me.start_date_time asc;
< /code>
Это дает правильные значения, но он вращается в течение 15 секунд вместо нескольких микросекундов, таких как отдельные, отдельные запросы. Прямо сейчас код моего приложения запускает 2 отдельных запроса, а затем сшивает 2 массива, которые просто кажется неэффективным (и также занимает некоторое время).

Подробнее здесь: https://stackoverflow.com/questions/797 ... le-selects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»