Die Leistungseinbußen bestehen darin, dass mysql eine Typkonvertierung von dem, was Sie ihm geben, in den Datentyp der Spalte durchführen muss. Also mit Ihrer Anfrage
Wenn col1 kein String-Typ ist, muss MySQL „3“ in diesen Typ konvertieren. Diese Art von Abfrage ist nicht wirklich eine große Sache, da der Leistungsaufwand dieser Konvertierung hoch ist vernachlässigbar.
Wenn Sie jedoch versuchen, dasselbe zu tun, wenn Sie beispielsweise 2 Tabellen mit jeweils mehreren Millionen Zeilen verbinden. Wenn die Spalten im ON
-Klausel nicht denselben Datentyp haben, dann muss MySQL jedes Mal mehrere Millionen Zeilen konvertieren Sie führen Ihre Abfrage aus und das Hier kommt der Performance-Overhead ins Spiel.