timestamp
Mitglied Käsekuchen
Hallo,
ich stehe hier vor einem Problem, dass sich mit der Performance meines Queries gibt.
Die Abfrage braucht ungecachet über 2sek, was deutlich zu lang ist.
Das Problem vermute ich bei einer redundanten Abfrage, der Query sieht vereinfacht so aus:
Wie man sieht steht in den Subquerys letztendlich das drin, was ich am Anfang auslesen möchte. Kann ich die Sachen quasi "nach oben" geben?
Tabellen:
ich stehe hier vor einem Problem, dass sich mit der Performance meines Queries gibt.
Die Abfrage braucht ungecachet über 2sek, was deutlich zu lang ist.
Das Problem vermute ich bei einer redundanten Abfrage, der Query sieht vereinfacht so aus:
SQL:
SELECT
a.a, a.b, a.c, m.t
FROM m
LEFT JOIN p
ON p.m_id = m.id
LEFT JOIN a
ON a.id = p.a_id
WHERE
m.id
IN (
SELECT m_id
FROM p
WHERE a_id
IN(
SELECT id
FROM a
WHERE
a.a = 'suche' OR a.b = 'suche' or a.c = 'suche'
)
)
Wie man sieht steht in den Subquerys letztendlich das drin, was ich am Anfang auslesen möchte. Kann ich die Sachen quasi "nach oben" geben?
Tabellen:
Code:
Table m:
id, title
Table a:
id, a, b, c
Table p:
m_id, a_id