Si je me base sur l'index des derniers decks postés, tu dois pas avoir plus de 1 000 000 d'entrées dans la table deck, et au pire 100 fois plus dans deck_card (si tous les decks sont des EDH, le pire cas quoi - foutu format moisi). C'est vrai que ça commence à faire beaucoup.
J'ai fait un "petit" test sur une instance PostgreSQL sur mon PC avec cette volumétrie, le schéma de mes exemples, des index sur les clés :
- La requête à 1 carte sans le IN passe en ~ 4 secondes. J'ai testé avec un IN à une carte, c'est pareil.
- La requête à 2 cartes avec le IN et le WHERE EXISTS passe en ~ 40 secondes.
- J'ai testé
une 2ème forme de la requête à 2 cartes (avec un INNER JOIN au lieu du WHERE EXISTS), qui s'exécute en ~ 6 secondes.
La durée augmente avec le nombre de cartes dans le IN, mais à 6 cartes ça n'avait toujours pas doublé le temps d'exécution.
Comme j'ai testé avec une volumétrie probablement différente, avec PostgreSQL au lieu de MySQL, et que mon PC portable n'est pas dimensionné pareil que ton serveur de base de données, y a moyen que tes résultats soient un peu différents.