Saltar al contenido

Número máximo de registros en una tabla de base de datos MySQL

Nuestro team especializado despúes de días de trabajo y de recopilar de datos, hallamos la respuesta, deseamos que todo este artículo sea de utilidad para tu plan.

Solución:

El mayor valor de un entero tiene poco que ver con el número máximo de filas que puede almacenar en una tabla.

Es true que si usa un int o bigint como su principal keysolo puede tener tantas filas como el número de valores únicos en el tipo de datos de su principal keypero no tienes que hacer tu principal key un número entero, podría convertirlo en CHAR(100). También puede declarar el principal key en más de una columna.

Hay otras restricciones en el tamaño de la tabla además del número de filas. Por ejemplo, podría usar un sistema operativo que tenga una limitación de tamaño de archivo. O podría tener un disco duro de 300 GB que puede almacenar solo 300 millones de filas si cada fila tiene un tamaño de 1 KB.

Los límites del tamaño de la base de datos son realmente altos:

http://dev.mysql.com/doc/refman/5.1/en/source-configuration-options.html

El motor de almacenamiento MyISAM admite 232 filas por tabla, pero puede construir MySQL con el --with-big-tables opción para que admita hasta 264 filas por tabla.

http://dev.mysql.com/doc/refman/5.1/en/innodb-restricciones.html

El motor de almacenamiento InnoDB tiene un ID de fila interno de 6 bytes por tabla, por lo que hay un número máximo de filas igual a 248 o 281.474.976.710.656.

Un tablespace de InnoDB también tiene un límite de tamaño de tabla de 64 terabytes. Cuántas filas caben en esto depende del tamaño de cada fila.

El límite de 64 TB asume el tamaño de página predeterminado de 16 KB. Puede aumentar el tamaño de la página y, por lo tanto, aumentar el espacio de tabla hasta 256 TB. Pero creo que encontrará que otros factores de rendimiento hacen que esto no sea recomendable mucho antes de que crezca una mesa a ese tamaño.

Los tipos mysql int pueden hacer bastantes filas: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

no firmado int el mayor valor es 4,294,967,295

no firmado bigint el mayor valor es 18,446,744,073,709,551,615

Sugiero, nunca borrar datos. No diga si las tablas son más largas que 1000, trunque el final de la tabla. Debe haber una lógica comercial real en su plan, como cuánto tiempo ha estado inactivo este usuario. Por ejemplo, si tiene más de 1 año, colóquelos en una tabla diferente. Haría que esto sucediera semanal o mensualmente en un script de mantenimiento en medio de un tiempo lento.

Cuando se encuentra con muchas filas en su tabla, debe comenzar a fragmentar las tablas o crear particiones y colocar datos antiguos en tablas antiguas por año, como users_2011_jan, users_2011_feb o usar números para el mes. Luego cambie su programación para trabajar con este modelo. Tal vez haga una nueva tabla con menos información para resumir los datos en menos columnas y luego solo consulte las tablas particionadas más grandes cuando necesite más información, como cuando el usuario está viendo su perfil. Todo esto debe considerarse con mucho cuidado para que en el futuro no sea demasiado costoso volver a factorizar. También puede poner solo los usuarios que visitan su sitio todo el tiempo en una tabla y los usuarios que nunca vienen en un conjunto de tablas archivadas.

Eres capaz de reafirmar nuestra investigación escribiendo un comentario y valorándolo te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *