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

¿Cuál es más rápido para una sola consulta grande o para unas pocas consultas pequeñas?

Cada "viaje de ida y vuelta" a la base de datos tendrá algunos gastos generales. Entonces, cuantos menos viajes de ida y vuelta, menos gastos generales. Considere también que menos solicitudes significan menos paquetes del cliente al servidor. Si el resultado de la consulta consolidada le da justo lo que desea, entonces la consulta única es el camino a seguir. Si su única consulta devuelve datos adicionales o redundantes (quizás debido a la desnormalización), entonces los ahorros generales de un solo viaje de ida y vuelta pueden perderse en los datos adicionales transferidos.

Otra consideración es la latencia. Si las consultas deben completarse en secuencia porque se necesita una parte de la salida de una en la entrada de la siguiente, la consolidación en una consulta eliminará todas las latencias de red entre todas las consultas más pequeñas individuales, por lo que se puede obtener un resultado final. ser entregado más rápido. Sin embargo, si las consultas más pequeñas son independientes entre sí, lanzarlas en paralelo puede obtener todos los resultados más rápido, aunque de manera menos eficiente.

En pocas palabras:la respuesta depende de los detalles de su situación. La mejor manera de obtener una respuesta probablemente sea implementar ambas formas, probar y comparar el uso de recursos de cada implementación.