Mysql
 sql >> Base de données >  >> RDS >> Mysql

Valeur fixe SQL IN() par rapport aux performances INNER JOIN

Cela concerne la longueur de la clause IN - et ce que l'on appelle parfois un BUG dans MySQL.

MySQL semble avoir un seuil bas pour les clauses IN, lorsqu'il passera à un TABLE/INDEX SCAN au lieu de collecter plusieurs partitions (une par élément IN) et de les fusionner.

Avec un INNER JOIN, on est presque toujours obligé d'utiliser un direct ligne par ligne dans la collection JOIN, c'est pourquoi c'est parfois plus rapide

Reportez-vous à ces pages de manuel MySQL

Je peux me tromper car cela semble impliquer que IN (constant value list) doit toujours utiliser une recherche binaire sur chaque élément...