Int-Vergleiche sind schneller als Varchar-Vergleiche, weil Ints viel weniger Platz beanspruchen als Varchars.
Dies gilt sowohl für nicht indizierten als auch für indizierten Zugriff. Der schnellste Weg ist eine indizierte int-Spalte.
Wie ich sehe, haben Sie die Frage postgreql getaggt, Sie könnten an der Speicherplatznutzung verschiedener Datumstypen interessiert sein:
int
Felder belegen zwischen 2 und 8 Bytes, wobei 4 normalerweise mehr als genug sind ( -2147483648 bis +2147483647 )- Zeichentypen belegen 4 Bytes plus die eigentlichen Strings.