Ich habe unter SQL-Abfrage, die ich dynamisch basierend auf Benutzereingaben erstellen. Während die Abfrage relativ gut funktioniert, solange die IN-Parameter < 50 sind. Sobald jedoch die IN-Liste wächst, nimmt die Abfrageantwortzeit erheblich ab.MYSQL Abfrageoptimierung für SQL-Abfrage mit IN-Klausel
Ich habe in mehreren Abfragen mit kleinem Eingang versuchte Splitting Abfrage und alle Abfragen parallel .Dieses Brennen auf jeden Fall gibt mir ein bessere Leistung
jedoch i Splitting Abfrage vermeiden möchte, wenn jeder andere wissen möchte (besser) Art, wie ich weiter diese Abfrage optimieren kann (i denke ich, wenn durch someway i durch die Schaffung von temporären Tabellen beitreten können)
[pls Anmerkung col1 & col2 sind bereits ein Index]
SELECT a.col3, b.col5, b.col4, ...
FROM A a
JOIN B b ON a.apk = b.afk AND a.bfk = b.bpk
WHERE a.col1 IN (1, 2, 3, ...)
AND a.col2 IN ('abc', 'pqr', ...)
AND a.flag = 1
Erstellen Sie eine temporäre Tabelle aus diesen Parametern und JOIN darauf – Mihai
ON a.apk = b.afk UND a.bfk = b.bpk .... ist es richtig, wie Sie beide Tabellen basierend auf 2 verschiedenen Spalten. .. –
Mindestens Fragen zur Abfrageleistung erfordern IMMER richtige CREATE-Anweisungen für alle relevanten Tabellen UND das Ergebnis der EXPLAIN. – Strawberry