Comunidad de diseño web y desarrollo en internet online

¿INNER JOIN en este SELECT si o no?

Citar            
MensajeEscrito el 24 Abr 2019 08:20 pm
Hola a todos,

Estoy haciendo una consulta con datos de varias tablas relacionadas. Las tablas son:
-usuarios (id de usuarios)
-juegos (id de juegos)
-juegousuarios (id del juego con el id del usuario)

Para hacer esto existen diferentes maneras. Yo utilizo estas dos que producen el mismo resultado:
https://pastebin.com/wbYV2bYw

¿Cual de las dos es mejor?, ¿Realmente una es mucho mejor que otra o son similares?

Gracias!

Por sirius

25 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Abr 2019 10:49 am
Si usas la opcion EXPLAIN comprenderas mejor porque un join (probablemente left join) es mucho mejor que acumular selects

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Abr 2019 06:34 pm
La opción de join es mejor en la mayoría de los casos.

Cuando usas SELECT FROM tabla, tabla el motor hace lo que se conoce como Producto cartesiano (Se unen TODOS los registros de una tabla con TODOS los registros de la otra para, una vez obtenido el resultado, eliminar (mediante el WHERE) las filas que no sirven.

El punto es que esto es sumamente ineficiente (Especialmente cuando se trata de muchas tablas y/o muchos registros), ya que la cantidad de memoria requerida crece en forma exponencial.

Por otro lado, al usar JOINS el motor puede utilizar los índices para hacer todavía más eficiente el filtro (Que se realiza a medida que se construye el resultado y no, como en el otro caso, al final de todo).

Por mchojrin

37 de clabLevel



Genero:Masculino  

Ayudo desarrolladores PHP a acelerar su llegada a Sr.

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.