Va a depender del DBMS, y hasta cierto punto de las tablas unidas, y la diferencia generalmente no va a ser mensurable. Con INNER JOIN, habrá dos copias de las columnas comunes; con NATURAL JOIN, solo habrá una copia de las columnas comunes.
Si los resultados intermedios deben escribirse en el disco u ordenarse, habrá más datos para administrar, y hay un poco más de datos que se devolverán al cliente a través de la conexión cliente-servidor, por lo que una UNIÓN INTERNA podría tomar un poco más de tiempo que NATURAL UNIRSE. Si las columnas comunes son lo suficientemente grandes, campos de caracteres largos, por ejemplo, esta diferencia de tamaño podría ser significativa.
La diferencia de tiempo para preparar los dos tipos de unión es completamente insignificante. Ambos tienen que leer la información para todas las columnas en ambas tablas involucradas en la unión, y el procesamiento de esa información es sustancialmente similar.
Durante la ejecución, la copia de los datos para formar los resultados intermedios puede ser un poco más compleja para una UNIÓN NATURAL - porque no solo toma una copia de cada fila - pero no necesariamente toma una copia completa de cada fila para una UNIÓN INTERNA tampoco, por lo que la diferencia es nuevamente insignificante. Y, como antes, hay menos datos para copiar en conjunto para NATURAL JOIN, por lo que aún hay una pequeña ventaja.
Por lo tanto, en general, un NATURAL JOIN podría ser un poco más rápido que un INNER JOIN, pero la diferencia aún es insignificante.
y más al punto, la diferencia no está relacionada con mirar la información de la estructura de la tabla. – siride
@siride: sí, de hecho. Como mencioné, "el costo del tiempo de preparación es completamente insignificante" (ya que el proceso de preparación tiene que examinar todos los datos relevantes para ambas tablas, independientemente). –
Debería leer más de cerca: - / – siride