¿Rara vez el uso de campos en la tabla mysql disminuirá el rendimiento?

Tengo cuatro campos en mi tabla de usuario

reset_password_code CHAR(128)
reset_password_expiry DATETIME

email_verification_code CHAR(128)
email_verification_expiry DATETIME

¿Disminuirá el rendimiento de la base de datos? ¿Hay alguna mejor práctica para hacerlo? No me preocupa el espacio sino el tiempo.

ACTUALIZACIÓN:

Si cambio el CHAR a VARCHAR, ¿resolverá el problema de espacio?

preguntado el 04 de julio de 12 a las 08:07

Normalmente, el punto de preocupación es el espacio... Creo que podría aumentar el tiempo de proceso un poco al insertar o eliminar porque un registro tendrá 4 campos más -

¿Por qué no compararlo? mysqlslap -

1 Respuestas

En teoría, más campos significarían más espacio Y más tiempo para acceder. Sin embargo, si está hablando del diseño de la base de datos, esto no será un problema.

En realidad, debe preocuparse por la cantidad de registros y no por la cantidad de campos. Esto se debe a que, a medida que aumenta el número de registros, también aumentaría el tiempo de búsqueda.

Es por eso que establecemos un campo adecuado como clave principal. En los casos en que su búsqueda se realizará en diferentes campos, es posible que no pueda tener muchas claves principales. Esto es cuando usas índices. Es decir, debe crear un índice basado en el campo que usará para buscar. Así es como se gana la eficiencia.

En el pasado he construido MySQL + PHP aplicaciones donde había más de 20 millones de registros. Y obtener alrededor de 10,000 registros usando una búsqueda solo tomó menos de 10 segundos.

El secreto no está en la cantidad de campos, sino en la forma en que crea sus claves primarias/índice.

Así que no te preocupes por los 4 campos que tienes :)

Respondido 04 Jul 12, 08:07

Se agregó una pregunta más, ¿puedes responderla? - mohamed h

@habeepperwad La diferencia entre CHAR y VARCHAR es que Char tiene una longitud fija. Varchar, por otro lado, solo ocupa espacio según lo necesiten los datos reales, pero está limitado al tamaño máximo especificado (por ejemplo: 128). Ahora, si va a escribir datos de longitud fija como un código encriptado de 128 caracteres, ninguno de los dos campos importaría. Pero si desea almacenar valores como nombres y direcciones, VARCHAR es el camino a seguir. - itsoles

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.