----- Mensaje original ----
De: Juan Manuel Doren <[EMAIL PROTECTED]>
Para: Discusion de Linux en Castellano <[email protected]>
Enviado: martes, 30 de septiembre, 2008 23:46:45
Asunto: Re: Mysql, consulta registro sin integridad referencial

> Ahh pero que desagradable, no hay caso... no quería hacer la consulta por 
> este medio

>en una lista de mySQL la deberias haber hecho entonces.....

Créeme que lo sé, como no encotré en la lista de la Santa María ni de la U Bio 
Bio... y sé que se tocan temas de DB acá... 

>que omitas tus comentarios que no me interesan.-

>pero tiene derecho a hacerlos aunque no te interesen, acostumbrate a
>que en esta lista la mayoria no nos conocemos y somos solo una
>direccion de correo con nombre, y es mas facil decirle lo que se
>piensa a alguien sin nombre y hay que ser demasiado sensible de piel
>para ofenderse por comentarios ___tecnicos____

Bien por tu intento filosófico, pero no fue el comentario técnico, de hecho, 
eso me sirve como solución... Y tampoco me he ofendido :)

Saludos.-


      
____________________________________________________________________________________
Premios MTV 2008¡En exclusiva! Fotos, nominados, videos, y mucho más! Mira aquí 
http://mtvla.yahoo.com/
From [EMAIL PROTECTED]  Wed Oct  1 18:32:18 2008
From: [EMAIL PROTECTED] (Lorenzo Ponce)
Date: Wed Oct  1 18:59:20 2008
Subject: Mysql, consulta registro sin integridad referencial
Message-ID: <[EMAIL PROTECTED]>

 
----- Mensaje original ----
De: Rodrigo Fuentealba <[EMAIL PROTECTED]>
Para: Discusion de Linux en Castellano <[email protected]>
Enviado: martes, 30 de septiembre, 2008 23:12:15
Asunto: Re: Mysql, consulta registro sin integridad referencial

El día 30 de septiembre de 2008 22:26, Lorenzo Ponce
<[EMAIL PROTECTED]> escribió:
> Ahh pero que desagradable, no hay caso...

>Te doy una respuesta con todo y documentación, ¿y alegas? A lo mejor
>si te hubieras explicado bien y no te hubieras puesto el parche antes
>de la herida, habrías recibido tu respuesta y habrías dejado al resto
>contento alegando y discutiendo nuevamente sobre la tortura de usar
>MyISAM ;-)

> no quería hacer la consulta por este medio porque sé
> que existen individuos como este tal rodrigo....

>Sí, a veces somos densos por el mail, pero no te lo tomes tan a pecho
>hombreee, si al final cuando conoces a la gente te das cuenta de que
>muchos de ellos son muy buena onda. Comienza por asumir buena fe de
>alguien que te responde y te da una sugerencia. Tal vez tiene sus
>razones para responder ácidamente contra algo.

Ya... si hubieras aplicado compresión de lectura y respondido lo que se 
requería. Todo bien profesor :), el resto, bonus tracks cuyo aporte a la 
solución era... mmm, cero ?

> muerdete la lengua hombre! (dedos)

>Nah, mi polola me tiene prohibido comer lengua humana.

Risas...

>Saludos,

Idem.
-- 
Rodrigo Fuentealba


      
____________________________________________________________________________________
¡Todo sobre Amor y Sexo!
La guía completa para tu vida en Mujer de Hoy.                       
http://mujerdehoy.telemundo.yahoo.com/
From [EMAIL PROTECTED]  Wed Oct  1 19:51:30 2008
From: [EMAIL PROTECTED] (Lorenzo Ponce)
Date: Wed Oct  1 19:51:38 2008
Subject: Mysql, consulta registro sin integridad referencial
Message-ID: <[EMAIL PROTECTED]>





----- Mensaje original ----
De: Rodrigo Fuentealba <[EMAIL PROTECTED]>
Para: Discusion de Linux en Castellano <[email protected]>
Enviado: martes, 30 de septiembre, 2008 20:26:44
Asunto: Re: Mysql, consulta registro sin integridad referencial

>SELECT tabla1.campo FROM tabla1, tabla2 WHERE tabla1.campo1 NOT IN
>(SELECT tabla2.campo2 FROM tabla2);

>Eso, ¿cierto?.

Correcto, eso es lo que tengo en este momento.

>http://dev.mysql.com/doc/refman/5.0/en/rewriting-subqueries.html

>Haz un query rewrite como el que sigue:

>SELECT tabla1.*
> FROM tabla1 LEFT JOIN tabla2 ON tabla1.id=tabla2.id
> WHERE tabla2.id IS NULL;

>Con eso deberías tener un improvement.

De todas formas es lento, no sé si existe una forma de hacer lo que necesito 
con consultas sql dado lo que ya está hecho por un tercero.

Si existe alguna otra técnica, sería interesante.

He pensado en escribir un caracter especial en un campo por cada uno de los 
registros de la tabla 2, luego en el select de la tabla 1 usar una comparación, 
como por ejemplo, campo NOT LIKE "%-id-%", evidéntemente no es una solución 
"elegante".

Bueno, sinó tocará rediseñar.

Saludos.-
LP


      
____________________________________________________________________________________
¡Todo sobre Amor y Sexo!
La guía completa para tu vida en Mujer de Hoy.                       
http://mujerdehoy.telemundo.yahoo.com/
From [EMAIL PROTECTED]  Wed Oct  1 20:05:00 2008
From: [EMAIL PROTECTED] (Rodrigo Fuentealba)
Date: Wed Oct  1 20:05:06 2008
Subject: Mysql, consulta registro sin integridad referencial
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

El día 1 de octubre de 2008 19:51, Lorenzo Ponce <[EMAIL PROTECTED]> escribió:
>
>>http://dev.mysql.com/doc/refman/5.0/en/rewriting-subqueries.html
>
>>Haz un query rewrite como el que sigue:
>
>>SELECT tabla1.*
>> FROM tabla1 LEFT JOIN tabla2 ON tabla1.id=tabla2.id
>> WHERE tabla2.id IS NULL;
>
>>Con eso deberías tener un improvement.
>
> De todas formas es lento, no sé si existe una forma de hacer lo que
> necesito con consultas sql dado lo que ya está hecho por un tercero.

A eso me refería con que el optimizador de consultas en MySQL era malo. See?

> Si existe alguna otra técnica, sería interesante.

Lo encuentro difícil. ¿Tal vez si haces un EXPLAIN y le pones INDEX
para que por lo menos se ahorre el tiempo de buscar?

http://dev.mysql.com/doc/refman/5.0/en/explain.html

Por lo menos a mí el poner índices en PostgreSQL me resulta muy bien
cada vez que tengo una query lenta. No sé si en MySQL se pueda, pero
la estrategia debería ser más o menos la misma:

http://dev.mysql.com/doc/refman/5.0/en/create-index.html

Creo que un BTREE sería lo único que puedes hacer (los RTREE son para
indexes espaciales).

> He pensado en escribir un caracter especial en un campo por cada uno de los
> registros de la tabla 2, luego en el select de la tabla 1 usar una 
> comparación,
> como por ejemplo, campo NOT LIKE "%-id-%", evidéntemente no es una solución 
> "elegante".

Feo.

> Bueno, sinó tocará rediseñar.

Try indexes.

-- 
Rodrigo Fuentealba

Responder a