Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Qué es mejor u óptimo??

Estas en el tema de Qué es mejor u óptimo?? en el foro de Mysql en Foros del Web. Hola a todos... Pues bien siempre hago las consultas de la siguiente manera cuando tengo que relacionar: Código: select * from usuarios,perfiles where usuarios.id_perfil=perfiles.id_perfil and ...
  #1 (permalink)  
Antiguo 11/01/2008, 22:38
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Pregunta Qué es mejor u óptimo??

Hola a todos...

Pues bien siempre hago las consultas de la siguiente manera cuando tengo que relacionar:
Código:
select * from usuarios,perfiles where usuarios.id_perfil=perfiles.id_perfil and .....
De esa manera logro indexar los registros.

De tanto ver el join me ha causado curiosidad y no sé cual es la diferencia (fuera de la sintáxis) con respecto a como lo hago??? Tiene ventajas?? desventajas?? O simplemente son dos formas distintas de escribir para obtener el mismo resultado???

De antemano agradezco sus respuestas...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 13/01/2008, 10:10
 
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 32
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Qué es mejor u óptimo??

Cuando empecé a trabajar "en serio" con MySQL se nos dijo que cuando se querían relacionar dos tablas uno tenía dos opciones:
  1. Usar FROM EQUIS, YE lo cual hacía un producto cartesiano que posteriormente se veía limitado por las cláusulas que colocabamos en el WHERE, el gestor de base de datos trabajaba "un poquito más" porque tenía que relacionar cada una de las líneas de EQUIS con todas y cada una de las líneas de YE y posteriormente filtrarlas
  2. Usar [LEFT|INNER|OUTER] JOIN Lo cual retornaba los datos ya filtrados, por lo que el gestor de base de datos trabajaba "un poco menos"

Claro, te estoy hablando del 2000, ya han pasado un pocotón de años y no sé si el query optimizer de los gestores de base de datos se "dan cuenta" de lo que se quiere hacer y buscarán la forma más óptima de obtener la información.

Sin embargo yo que tu, empezaría por echar un buen vistazo a los JOIN's (especialmente al LEFT JOIN)
  #3 (permalink)  
Antiguo 13/01/2008, 10:45
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: Qué es mejor u óptimo??

Las 2 maneras, son 2 formas distintas de expresar una operación relacional.

De hecho, en la teoría relacional, se enuncia que un operador puede ser obtenido a partir de la combinación de otros operadores. En este caso, el JOIN puede ser obtenido a través de un producto cartesiano
combinado con un WHERE.

Lo más seguro es que el optimizador de MySQL se de cuenta de esta equivalencia y elija la manera más óptima de hacer la operación.

Por las dudas, hacé tus propias pruebas con la consulta expresada de las 2 maneras y fjate cual es más "óptima".
  #4 (permalink)  
Antiguo 14/01/2008, 07:47
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Qué es mejor u óptimo??

A ver...

Sí hay algunas diferencias... por ejemplo, en un producto cartesiano (los nombres de las dos tablas), sólo se listan registros en los que ambas tablas tienen datos.

En un LEFT JOIN, por ejemplo, se listan todos los registros de la primera (que coincidan con un WHERE opcional) y sólo aquellos de la segunda tabla que estén relacionados.

Hay diferencias, por lo que es importante conocerlas... pásate por le manual de MySQL... lo explica bastante bien.
  #5 (permalink)  
Antiguo 15/01/2008, 07:31
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Qué es mejor u óptimo??

Hey muchas gracias a todos por sus respuestas y opiniones

Alguno de ustedes tiene un link para leer mas al respecto? Pragone, exactamente no sabes la sección donde debo buscar en el manual de mysql??

De nuevo muchas gracias!!!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 15/01/2008, 07:46
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: Qué es mejor u óptimo??

Hola Carxl

Mira en: http://dev.mysql.com/doc/refman/5.0/es/join.html
  #7 (permalink)  
Antiguo 16/01/2008, 13:19
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Qué es mejor u óptimo??

Hola pragone!!

Muchas gracias por tu ayuda

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:33.