sql >> Base de Datos >  >> RDS >> Mysql

¿Qué tan grande es demasiado grande para una tabla MySQL?

No hay una gran solución general a la pregunta "¿Qué tan grande es demasiado grande?" Estas preocupaciones dependen con frecuencia de lo que está haciendo con sus datos y cuáles son sus consideraciones de rendimiento.

Hay algunos límites fundamentales en el tamaño de las tablas. No puede tener más de 1000 columnas. Tus registros no pueden tener más de 8k cada uno. Estos límites cambian según el motor de la base de datos. (Los de aquí son para InnoDB.)

Parece que ha fusionado varios conjuntos de datos diferentes en una tabla. Probablemente tenga algunos campos que le indiquen a qué conjunto de datos pertenece este registro, junto con algunos campos de datos y alguna información de marca de tiempo. Ese no es un registro muy amplio (a menos que esté registrando, digamos, todos los parámetros de entrada de cada solicitud). Su principal problema será con la selectividad . Indexar esta tabla de manera significativa será un desafío. Si sus campos comunes pueden ser lo suficientemente selectivos como para que pueda usarlos para obtener los registros que desea sin consultar la tabla, eso será una gran ventaja. (Cf. escaneo de tabla)

Para tantos registros por día (básicamente, dos por segundo todo el día, y supongo que tiene un período de carga máxima en el que es mucho más alto), también querrá asegurarse de mirar específicamente las optimizaciones en mejorar la velocidad de inserción . Como regla general, más índices =inserciones más lentas. Si puede, considere archivar los registros obsoletos en otra tabla por completo. En lugares de trabajo anteriores, hemos utilizado una estrategia de archivo de Último mes, Tres meses anteriores, Seis meses anteriores, cada uno en tablas separadas. Otra idea es eliminar los registros más antiguos. Muchos entornos simplemente no necesitan información más allá de una fecha determinada. Aferrarse a los registros de registro de hace tres meses suele ser demasiado costoso.

Por último, no descuides el almacenamiento físico de tu mesa. Cuanto más delgados sean sus registros, menos E/S física debe ocurrir para leer (o para insertar) un registro. Puede almacenar sus índices en un disco duro físico separado. Si hay muchos datos redundantes en sus registros, almacenar la tabla comprimida podría ser un aumento de velocidad. Si tiene un poco de dinero para gastar, considere el valor de una buena matriz RAID para dividir sus datos.

Entonces, para responder a su pregunta básica:son muchos registros, pero con un ojo atento a la afinación, no será un problema.