Hallo Community,
ich habe ein Problem mit sehr langen SQL Queries, die meine Datenbank sehr lange beschäftigen. Die Query wird von einer Software so generiert und ich frage mich, ob es nicht auch kürzer geht. An der grundsätzlichen Datenstruktur kann ich leider nichts ändern, aber es wäre toll, wenn ein SQL Kenner mal kurz über die unten gezeigte SQL schauen könnte. Mir ginge es darum, ob man die Anfrage selbst anders formulieren könnte, damit sie kürzer ist bzw. idealerweise schneller verarbeitet wird. Ich denke man erkennt, dass ich selbst nicht den Plan habe ;)
Ich bedanke mich schonmal im Vorfeld für jede Hilfe. Falls ich woanders kompetenter Hilfe erhalten kann, würde ich mich über einen entsprechenden Link auch freuen.
Guido
SELECT audio
.id
, audio
.audio\_file
, IF( FIND_IN_SET( 955, audio
.keys
)
OR FIND_IN_SET( 956, audio
.keys
)
OR FIND_IN_SET( 3344, audio
.keys
)
OR FIND_IN_SET( 3349, audio
.keys
)
OR FIND_IN_SET( 3619, audio
.keys
)
OR FIND_IN_SET( 3620, audio
.keys
)
OR FIND_IN_SET( 5210, audio
.keys
)
OR FIND_IN_SET( 5329, audio
.keys
)
OR FIND_IN_SET( 6209, audio
.keys
)
OR FIND_IN_SET( 6796, audio
.keys
)
OR FIND_IN_SET( 8506, audio
.keys
)
OR FIND_IN_SET( 9808, audio
.keys
)
OR FIND_IN_SET( 9890, audio
.keys
)
OR FIND_IN_SET( 9891, audio
.keys
)
OR FIND_IN_SET( 9893, audio
.keys
)
OR FIND_IN_SET( 10607, audio
.keys
)
OR FIND_IN_SET( 11809, audio
.keys
)
OR FIND_IN_SET( 12494, audio
.keys
)
OR FIND_IN_SET( 13665, audio
.keys
)
OR FIND_IN_SET( 13672, audio
.keys
)
OR FIND_IN_SET( 15535, audio
.keys
)
OR FIND_IN_SET( 17545, audio
.keys
)
OR FIND_IN_SET( 18257, audio
.keys
)
OR FIND_IN_SET( 19000, audio
.keys
)
OR FIND_IN_SET( 20366, audio
.keys
)
OR FIND_IN_SET( 21347, audio
.keys
)
OR FIND_IN_SET( 22672, audio
.keys
)
OR FIND_IN_SET( 22864, audio
.keys
)
OR FIND_IN_SET( 22889, audio
.keys
)
OR FIND_IN_SET( 23357, audio
.keys
)
OR FIND_IN_SET( 26076, audio
.keys
)
OR FIND_IN_SET( 26394, audio
.keys
)
OR FIND_IN_SET( 28481, audio
.keys
)
OR FIND_IN_SET( 28774, audio
.keys
)
OR FIND_IN_SET( 31526, audio
.keys
)
OR FIND_IN_SET( 38525, audio
.keys
)
OR FIND_IN_SET( 39045, audio
.keys
)
OR FIND_IN_SET( 42062, audio
.keys
)
OR FIND_IN_SET( 44699, audio
.keys
)
OR FIND_IN_SET( 46021, audio
.keys
) , 1, IF( FIND_IN_SET( 955, audio
.keyword
)
OR FIND_IN_SET( 956, audio
.keyword
)
OR FIND_IN_SET( 3344, audio
.keyword
)
OR FIND_IN_SET( 3349, audio
.keyword
)
OR FIND_IN_SET( 3619, audio
.keyword
)
OR FIND_IN_SET( 3620, audio
.keyword
)
OR FIND_IN_SET( 5210, audio
.keyword
)
OR FIND_IN_SET( 5329, audio
.keyword
)
OR FIND_IN_SET( 6209, audio
.keyword
)
OR FIND_IN_SET( 6796, audio
.keyword
)
OR FIND_IN_SET( 8506, audio
.keyword
)
OR FIND_IN_SET( 9808, audio
.keyword
)
OR FIND_IN_SET( 9890, audio
.keyword
)
OR FIND_IN_SET( 9891, audio
.keyword
)
OR FIND_IN_SET( 9893, audio
.keyword
)
OR FIND_IN_SET( 10607, audio
.keyword
)
OR FIND_IN_SET( 11809, audio
.keyword
)
OR FIND_IN_SET( 12494, audio
.keyword
)
OR FIND_IN_SET( 13665, audio
.keyword
)
OR FIND_IN_SET( 13672, audio
.keyword
)
OR FIND_IN_SET( 15535, audio
.keyword
)
OR FIND_IN_SET( 17545, audio
.keyword
)
OR FIND_IN_SET( 18257, audio
.keyword
)
OR FIND_IN_SET( 19000, audio
.keyword
)
OR FIND_IN_SET( 20366, audio
.keyword
)
OR FIND_IN_SET( 21347, audio
.keyword
)
OR FIND_IN_SET( 22672, audio
.keyword
)
OR FIND_IN_SET( 22864, audio
.keyword
)
OR FIND_IN_SET( 22889, audio
.keyword
)
OR FIND_IN_SET( 23357, audio
.keyword
)
OR FIND_IN_SET( 26076, audio
.keyword
)
OR FIND_IN_SET( 26394, audio
.keyword
)
OR FIND_IN_SET( 28481, audio
.keyword
)
OR FIND_IN_SET( 28774, audio
.keyword
)
OR FIND_IN_SET( 31526, audio
.keyword
)
OR FIND_IN_SET( 38525, audio
.keyword
)
OR FIND_IN_SET( 39045, audio
.keyword
)
OR FIND_IN_SET( 42062, audio
.keyword
)
OR FIND_IN_SET( 44699, audio
.keyword
)
OR FIND_IN_SET( 46021, audio
.keyword
) , 2, IF( FIND_IN_SET( 955, audio
.keys
)
OR FIND_IN_SET( 956, audio
.keys
)
OR FIND_IN_SET( 3344, audio
.keys
)
OR FIND_IN_SET( 3349, audio
.keys
)
OR FIND_IN_SET( 3619, audio
.keys
)
OR FIND_IN_SET( 3620, audio
.keys
)
OR FIND_IN_SET( 5210, audio
.keys
)
OR FIND_IN_SET( 5329, audio
.keys
)
OR FIND_IN_SET( 6209, audio
.keys
)
OR FIND_IN_SET( 6796, audio
.keys
)
OR FIND_IN_SET( 8506, audio
.keys
)
OR FIND_IN_SET( 9808, audio
.keys
)
OR FIND_IN_SET( 9890, audio
.keys
)
OR FIND_IN_SET( 9891, audio
.keys
)
OR FIND_IN_SET( 9893, audio
.keys
)
OR FIND_IN_SET( 10607, audio
.keys
)
OR FIND_IN_SET( 11809, audio
.keys
)
OR FIND_IN_SET( 12494, audio
.keys
)
OR FIND_IN_SET( 13665, audio
.keys
)
OR FIND_IN_SET( 13672, audio
.keys
)
OR FIND_IN_SET( 15535, audio
.keys
)
OR FIND_IN_SET( 17545, audio
.keys
)
OR FIND_IN_SET( 18257, audio
.keys
)
OR FIND_IN_SET( 19000, audio
.keys
)
OR FIND_IN_SET( 20366, audio
.keys
)
OR FIND_IN_SET( 21347, audio
.keys
)
OR FIND_IN_SET( 22672, audio
.keys
)
OR FIND_IN_SET( 22864, audio
.keys
)
OR FIND_IN_SET( 22889, audio
.keys
)
OR FIND_IN_SET( 23357, audio
.keys
)
OR FIND_IN_SET( 26076, audio
.keys
)
OR FIND_IN_SET( 26394, audio
.keys
)
OR FIND_IN_SET( 28481, audio
.keys
)
OR FIND_IN_SET( 28774, audio
.keys
)
OR FIND_IN_SET( 31526, audio
.keys
)
OR FIND_IN_SET( 38525, audio
.keys
)
OR FIND_IN_SET( 39045, audio
.keys
)
OR FIND_IN_SET( 42062, audio
.keys
)
OR FIND_IN_SET( 44699, audio
.keys
)
OR FIND_IN_SET( 46021, audio
.keys
) , 3, IF( 0, 4, 9 ) ) ) ) AS relevanz
FROM audio
JOIN structure\_audio
ON structure\_audio
.id
= audio
.id
WHERE (
structure\_audio
.id
IS NOT NULL
AND audio
.state
=1
)
AND (
(
FIND_IN_SET( 955, audio
.keys
)
OR FIND_IN_SET( 956, audio
.keys
)
OR FIND_IN_SET( 3344, audio
.keys
)
OR FIND_IN_SET( 3349, audio
.keys
)
OR FIND_IN_SET( 3619, audio
.keys
)
OR FIND_IN_SET( 3620, audio
.keys
)
OR FIND_IN_SET( 5210, audio
.keys
)
OR FIND_IN_SET( 5329, audio
.keys
)
OR FIND_IN_SET( 6209, audio
.keys
)
OR FIND_IN_SET( 6796, audio
.keys
)
OR FIND_IN_SET( 8506, audio
.keys
)
OR FIND_IN_SET( 9808, audio
.keys
)
OR FIND_IN_SET( 9890, audio
.keys
)
OR FIND_IN_SET( 9891, audio
.keys
)
OR FIND_IN_SET( 9893, audio
.keys
)
OR FIND_IN_SET( 10607, audio
.keys
)
OR FIND_IN_SET( 11809, audio
.keys
)
OR FIND_IN_SET( 12494, audio
.keys
)
OR FIND_IN_SET( 13665, audio
.keys
)
OR FIND_IN_SET( 13672, audio
.keys
)
OR FIND_IN_SET( 15535, audio
.keys
)
OR FIND_IN_SET( 17545, audio
.keys
)
OR FIND_IN_SET( 18257, audio
.keys
)
OR FIND_IN_SET( 19000, audio
.keys
)
OR FIND_IN_SET( 20366, audio
.keys
)
OR FIND_IN_SET( 21347, audio
.keys
)
OR FIND_IN_SET( 22672, audio
.keys
)
OR FIND_IN_SET( 22864, audio
.keys
)
OR FIND_IN_SET( 22889, audio
.keys
)
OR FIND_IN_SET( 23357, audio
.keys
)
OR FIND_IN_SET( 26076, audio
.keys
)
OR FIND_IN_SET( 26394, audio
.keys
)
OR FIND_IN_SET( 28481, audio
.keys
)
OR FIND_IN_SET( 28774, audio
.keys
)
OR FIND_IN_SET( 31526, audio
.keys
)
OR FIND_IN_SET( 38525, audio
.keys
)
OR FIND_IN_SET( 39045, audio
.keys
)
OR FIND_IN_SET( 42062, audio
.keys
)
OR FIND_IN_SET( 44699, audio
.keys
)
OR FIND_IN_SET( 46021, audio
.keys
)
)
OR (
FIND_IN_SET( 955, audio
.keyword
)
OR FIND_IN_SET( 956, audio
.keyword
)
OR FIND_IN_SET( 3344, audio
.keyword
)
OR FIND_IN_SET( 3349, audio
.keyword
)
OR FIND_IN_SET( 3619, audio
.keyword
)
OR FIND_IN_SET( 3620, audio
.keyword
)
OR FIND_IN_SET( 5210, audio
.keyword
)
OR FIND_IN_SET( 5329, audio
.keyword
)
OR FIND_IN_SET( 6209, audio
.keyword
)
OR FIND_IN_SET( 6796, audio
.keyword
)
OR FIND_IN_SET( 8506, audio
.keyword
)
OR FIND_IN_SET( 9808, audio
.keyword
)
OR FIND_IN_SET( 9890, audio
.keyword
)
OR FIND_IN_SET( 9891, audio
.keyword
)
OR FIND_IN_SET( 9893, audio
.keyword
)
OR FIND_IN_SET( 10607, audio
.keyword
)
OR FIND_IN_SET( 11809, audio
.keyword
)
OR FIND_IN_SET( 12494, audio
.keyword
)
OR FIND_IN_SET( 13665, audio
.keyword
)
OR FIND_IN_SET( 13672, audio
.keyword
)
OR FIND_IN_SET( 15535, audio
.keyword
)
OR FIND_IN_SET( 17545, audio
.keyword
)
OR FIND_IN_SET( 18257, audio
.keyword
)
OR FIND_IN_SET( 19000, audio
.keyword
)
OR FIND_IN_SET( 20366, audio
.keyword
)
OR FIND_IN_SET( 21347, audio
.keyword
)
OR FIND_IN_SET( 22672, audio
.keyword
)
OR FIND_IN_SET( 22864, audio
.keyword
)
OR FIND_IN_SET( 22889, audio
.keyword
)
OR FIND_IN_SET( 23357, audio
.keyword
)
OR FIND_IN_SET( 26076, audio
.keyword
)
OR FIND_IN_SET( 26394, audio
.keyword
)
OR FIND_IN_SET( 28481, audio
.keyword
)
OR FIND_IN_SET( 28774, audio
.keyword
)
OR FIND_IN_SET( 31526, audio
.keyword
)
OR FIND_IN_SET( 38525, audio
.keyword
)
OR FIND_IN_SET( 39045, audio
.keyword
)
OR FIND_IN_SET( 42062, audio
.keyword
)
OR FIND_IN_SET( 44699, audio
.keyword
)
OR FIND_IN_SET( 46021, audio
.keyword
)
)
OR (
(
( 0 )
OR ( 0 )
OR ( 0 )
OR audio
.audio\_number
= 'drums'
)
)
)
ORDER BY relevanz ASC , audio_quality DESC , audio.create DESC
LIMIT 0 , 3000