Creé un motor de análisis que extrae 50-100 filas de datos brutos de mi base de datos (llamémoslo raw_table
), ejecuta varias medidas estadísticas en PHP y luego aparece exactamente 140 puntos de datos que luego necesito almacenar en otra tabla (vamos a llamarlo results_table
). Todos estos puntos de datos son muy pequeños ("40", "2.23", "- 1024" son buenos ejemplos de los tipos de datos).mysql - Creación de filas vs. columnas rendimiento
Sé que el número máximo de columnas para mysql es bastante alto (4000+) pero parece que hay una gran cantidad de áreas grises en cuanto a cuando el rendimiento realmente comienza a degradarse.
Así que un par de preguntas aquí sobre las mejores prácticas de desempeño:
1) Los 140 puntos de datos podrían ser, si es mejor, dividido en 20 filas de 7 puntos de datos todos con el mismo 'experiment_id
' si un menor número de columnas es mejor. SIN EMBARGO, siempre tendría que sacar TODAS las 20 filas (con 7 columnas cada una, más identificación, etc.) así que no creo que esto sería un mejor rendimiento que tirar 1 fila de 140 columnas. Entonces, la pregunta: ¿es mejor almacenar 20 filas de 7-9 columnas (que tendrían que ser tiradas al mismo tiempo) o 1 fila de 140-143 columnas?
2) Dados mis ejemplos de datos ("40", "2.23", "- 1024" son buenos ejemplos de lo que se almacenará) Estoy pensando en smallint
para el tipo de estructura. ¿Algún comentario, en cuanto a rendimiento o si no?
3) Cualquier otro comentario sobre problemas de rendimiento de mysql es bienvenido.
Gracias de antemano por su contribución.
Espero que sepas que 'int' y' int (1) 'son del mismo tamaño, es decir, usan la misma cantidad de bytes para almacenar (la longitud solo importa cuando' zero-padding' está habilitado). Además, si los números no pueden ser negativos, puede usar 'unsigned'. Además, no puede almacenar números de coma flotante (como '2.23') en tipos' int'. –
'doble' es entonces :), gracias. ¿Alguna entrada en las filas v pregunta columnas? – themerlinproject