Int-jämförelser är snabbare än varchar-jämförelser, för det enkla faktum att ints tar mycket mindre plats än varchars.
Detta gäller både för oindexerad och indexerad åtkomst. Den snabbaste vägen att gå är en indexerad int-kolumn.
Som jag ser att du har taggat frågan postgreql, kanske du är intresserad av utrymmesanvändningen för olika datumtyper:
int
fält upptar mellan 2 och 8 byte, där 4 vanligtvis är mer än tillräckligt ( -2147483648 till +2147483647 )- teckentyper upptar 4 byte plus de faktiska strängarna.