Meine MySQL-Ansicht ist wirklich langsam in Tausenden von Daten, wie können wir diese Funktionalität verbessern?Mysql Ansicht sind sehr langsam
Während diese Ansicht in 10000s Daten abrufen, dauert es mehr als 30 Sekunden. Wie können wir diese Ansichtstabelle überarbeiten?
SELECT
i.jo_in_id,
j.*,
i.jo_in_week_number,
i.jo_in_client_ref_no,
i.cl_id AS jo_in_cl_id,
c.cl_short_name,
c.cl_business_name,
m.me_first_name,
m.me_last_name,
m.me_mobile,
sk.sk_name,
sk.sk_ticketed,
ti.ti_id,
ta.ta_name,
u.un_id,
u.un_from,
u.un_to,
v.ve_name,
mp.vmp_name,
r.vr_name
FROM
jo_2_no j2n,
jo_in_numbers i,
jobs j
LEFT JOIN venues_new v ON j.ve_id = v.ve_id
LEFT JOIN venues_meeting_place mp ON j.vmp_id = mp.vmp_id
LEFT JOIN venues_rooms r ON j.vr_id = r.vr_id
LEFT JOIN clients c ON j.cl_id = c.cl_id
LEFT JOIN members m ON j.me_id = m.me_id
LEFT JOIN skills sk ON j.sk_id = sk.sk_id
LEFT JOIN tasks ta ON j.ta_id = ta.ta_id
LEFT JOIN crew_tickets ti ON j.sk_id = ti.sk_id AND j.me_id = ti.me_id AND j.jo_time_off < ti.ti_expire
LEFT JOIN unavailability u ON j.me_id = u.me_id AND ((j.jo_time_on BETWEEN u.un_from AND u.un_to) OR (j.jo_time_on BETWEEN u.un_from AND u.un_to))
WHERE
j.jo_id = j2n.jo_id
AND j2n.jo_in_numbers_id = i.jo_in_id
NACH Benutzer EXPLAIN SELECT
folgenden wird die Ausgabe
Haben Sie Indizes für die Join-Spalten? Abgesehen davon können Sie aufhören, Ansichten zu verwenden, die dazu neigen, langsam zu sein. –
@TimBiegeleisen Ansichten sind nicht langsamer oder schneller als andere Abfragen. – arkascha
Die primäre Ursache ist wahrscheinlich die einfache Tatsache, dass Sie viele viele Tabellen kombinieren. Das ist langsam. Sie können versuchen, Dinge mit richtigen Indizes zu beschleunigen, aber nur so weit. Versuchen Sie zumindest, mit dem "Komma-Join", der für die ersten drei Tabellen verwendet wurde, herumzukommen, wodurch die für die Ergebnismenge erstellte temporäre Tabelle _really_ aufgebläht wird. Je größer dieser Satz ist, desto langsamer ist die Abfrage. Aber letztendlich sollten Sie Ihre Datenbank so umgestalten, dass Sie die Abfragen (Ansichten) vereinfachen können. – arkascha