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

Rendimiento de MySQL JOIN en 1 tabla grande y varias tablas pequeñas

Dado que es una relación de "uno a muchos", los almacenaría en una tabla separada. El optimizador de consultas del servidor SQL (bajo el capó) podrá analizar los 250 registros lo suficientemente rápido como para que no sea una preocupación. Además, dependiendo de la longitud de los valores en la tabla más pequeña, ahorrará espacio de almacenamiento al no almacenarlos cientos de millones de veces adicionales. Sin embargo, si el rendimiento de los informes es de suma importancia, puede optar por almacenarlos en una tabla "aplanada", como una estructura de almacén de datos, sin las uniones. Eso definitivamente será más rápido, pero sacrificaría espacio de almacenamiento y su base de datos relacional bien estructurada.

Dicho todo esto, elegiría la opción 1. Pero debería poder almacenar fácilmente los datos en una nueva tabla con el formato de la opción 2 (consultar en ambos) y luego medir el rendimiento por sí mismo. Espero que no haya mucha diferencia, especialmente dada la capacidad de sus mesas más pequeñas.