Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Festwert-IN() vs. INNER JOIN-Leistung

Dies bezieht sich auf die Länge der IN-Klausel - und was in MySQL manchmal als BUG bezeichnet wird.

MySQL scheint eine niedrige Schwelle für IN-Klauseln zu haben, wenn es zu einem TABLE/INDEX SCAN wechselt, anstatt mehrere Partitionen (eine pro IN-Element) zu sammeln und sie zusammenzuführen.

Bei einem INNER JOIN ist es fast immer gezwungen, eine direkte Zeile-für-Zeile-in-JOIN-Sammlung zu verwenden, weshalb es manchmal schneller ist

Siehe diese MySQL-Handbuchseiten

Ich könnte mich irren, da es zu implizieren scheint, dass IN (constant value list) sollte immer eine binäre Suche für jedes Element verwenden...