In einer Tabelle 'test' habe ich ein Integer-Feld TestID, mit einem Index.MySQL: ist ein Vergleich mit einer Ganzzahl schneller als mit einem Varchar-Feld?
SELECT * FROM test WHERE TestID=1234
SELECT * FROM test WHERE TestID='1234'
SELECT * FROM test WHERE TestID=COALESCE(1234, 0)
SELECT * FROM test WHERE TestID=COALESCE('1234', '')
Ich benutze die zweite Option jetzt, weil in meiner Anwendung der 1234
Teil dynamisch eingesetzt wird, und auch NULL oder und leere Zeichenfolge sein könnte, und ich will nicht die Aussage, weil diesen zum Scheitern verurteilt.
Wie groß wäre der Geschwindigkeitsunterschied zwischen diesen Aussagen oder gibt es überhaupt keinen Unterschied?
Antwort auf die Titelfrage ist: ja –