Prestandakostnaden är att närhelst mysql behöver göra en typkonvertering från vad du än ger den till datatyp för kolumnen. Så med din fråga
Om col1 inte är en strängtyp måste MySQL konvertera '3' till den typen. Den här typen av sökning är egentligen ingen stor sak, eftersom prestandaoverheaden för den konverteringen är försumbar.
Men när du försöker göra samma sak när du, säg, går med i 2 tabeller som har flera miljoner rader var. Om kolumnerna i ON
klausulen inte är samma datatyp, då måste MySQL konvertera flera miljoner rader varje gång du kör din fråga, och det är där prestanda omkostnader kommer in.