Alguna vez lei algo sobre la diferencia de usar char y varchar a la hora de las consultas sobre la BD, deberias tener eso en cuenta tambien, cito:
Fuente: http://www.vbmysql.com/articles/espanol/el-tutorial-de-vb-mysql-parte-1
Citar
Ahora que ya hemos definido nuestra clave primaria, echemos un vistazo a nuestra tabla Usuario. Nuestros nombres de columna serán manejados como strings a los cuales se permite que contengan valores alfanuméricos. Los dos campos básicos para contener strings son CHAR y VARCHAR, los cuales se definen en términos de la cadena de texto máxima que pueden almacenar (definida en caracteres, entre 1 y 255). La diferencia entre CHAR y VARCHAR radica en la manera en que manejan el espacio sin usar. Suponte que consideramos que la cadena más larga para un apellido es de 40 caracteres y un usuario tiene el apellido Winstead (8 caracteres). En un campo CHAR, el campo aún seguiría siendo de 40 bytes de tamaño (1 carácter = 1 byte) y los últimos 32 caracteres serían espacios en blanco utilizados para rellenar la cadena a los 40 caracteres completos (los espacios sobrantes serán eliminados cuando recuperes el valor). Esto significa que no importa qué tan larga sea la cadena en realidad, siempre ocupará los 40 caracteres de espacio completos dentro de la tabla. VARHAR, por el contrario, almacenará sólo los 8 caracteres y ocupará solamente 8 bytes de espacio en la tabla.
Tu primer impulso sería elegir VARCHAR y sacar provecho del menor espacio de almacenamiento requerido en la tabla con el objetivo de aumentar la velocidad en las búsquedas tal como yo lo describí anteriormente pero VARCHAR es la excepción a la regla. Cuando usas VARCHAR en una tabla (al igual que ciertas columnas creadas para grandes cantidades de texto y valores binarios) el ancho de cada fila se hace inconsistente. Una fila podría tener 40 bytes de longitud mientras que otra sólo 8. MySQL puede manejar esto almacenando la longitud de la fila en su sistema de archivos pero el servidor debe leer la longitud de cada fila antes de buscarla y continuar con la siguiente fila, donde deberá verificar la longitud otra vez, ad nauseam. Al definir campos de texto como CHAR ocuparemos más espacio en el disco rígido pero habrá un aumento en la velocidad ya que el servidor sabrá que cada una de las filas tiene exactamente el mismo tamaño (por ejemplo 120 bytes), permitiéndole que busque entre las filas sin verificar su longitud primero. Por tal motivo, recomiendo que definas tus campos de texto como CHAR para mejorar la performance de las consultas, a menos que el espacio de almacenamiento sea una consideración importante (y con los precios de los discos de hoy en día esta no es una gran preocupación, principalmente con nuestra aplicación).
Fuente: http://www.vbmysql.com/articles/espanol/el-tutorial-de-vb-mysql-parte-1