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

¿Cuál es el mejor rendimiento para recuperar los resultados de MySQL EAV como tabla relacional?

La mejor manera de averiguarlo sería probar, por supuesto. La respuesta puede ser diferente según el tamaño del conjunto de datos, la cantidad de metaclaves diferentes, su distribución (¿todas las entidades tienen valores para todas las metaclaves? ¿O solo para algunas de ellas?), la configuración de su base de datos. servidor y posiblemente muchos otros factores.

Si tuviera que adivinar, diría que el costo de JOIN las operaciones en la opción 2 serían más pequeñas que el costo de GROUP BY y funciones agregadas necesarias en las opciones 1 y 3.

Por lo tanto, esperaría encontrar la opción 2 más rápido que la 1 y la 3.

Para medir la Opción 4, deberá considerar más factores, ya que la aplicación puede estar en otro servidor, por lo que se deben tener en cuenta las cargas de los dos servidores (base de datos y aplicación) y la cantidad de clientes que solicitarán estos resultados. .

Nota al margen:necesita GROUP BY e.ID en las opciones 1 y 3.