otra duda

Joel A. Iturra iturrajoel en optonline.net
Mie Abr 28 20:31:05 CLT 2004


On Wednesday 28 April 2004 20:19, Alvaro Herrera wrote:
> On Wed, Apr 28, 2004 at 06:17:07PM -0400, Rodrigo Flores wrote:
>
> Hola,
>
> > calza Mysql dentro de las Bases de Datos relacionales, tal vez deber??a
> > preguntarme si es verdaderamente una BD.
>
> La respuesta es no.

no voy a discutir eso, pero....

>
> Primera referencia es "MySQL gotchas",
> http://sql-info.de/mysql/gotchas.html
>
> Segundo, la gente cree que "tener transacciones" es suficiente.  Esto no
> es asi; hay muchos otros aspectos a considerar, sobre todo si las
> transacciones son brujas.  Por ej. si tienes tablas InnoDB y tablas
> MyISAM mezcladas, y en una transaccion haces cambios a ambos tipos de
> tablas, al hacer ROLLBACK los cambios se deshacen en las tablas InnoDB
> pero no las MyISAM; el estado es inconsistente al final.  Y cuidado,
> porque si en la declaracion de una tabla se te olvida poner
> "type=innodb", la tabla no sera transaccional, no se te avisara de esto,
> las transacciones se ejecutaran aparentemente con exito pero al hacer
> rollback no pasa lo que tu esperas ... en resumen puede pasar cualquier
> cosa.

pero eso es obvio poh alvaro, si las transacciones estan solo para innodb en 
mysql, no puedes esperar que funcione en otro tipo de tablas. Osea, si el que 
esta haciendo la cuestion no tiene clara la diferencia, no es culpa de mysql


>
> Idem con la integridad referencial: si tu declaras una tabla con llaves
> foraneas pero no es InnoDB, nadie te va a informar que la llave foranea
> no esta siendo validada.

por eso cuando definas tus tablas, debes asegurarte que todas sean innodb, de 
lo contrario es como querer que vuele un auto (solo un ejemplo) 


> Ojo con ingresar fechas 31 de febrero; el servidor las acepta y tu no
> sabes que diablos metio ahi dentro.  Uno podria decir que es culpa de la
> aplicacion, pero lo cierto es que el sistema debe hacer chequeos.  Idem
> con numeros demasiado grandes y otras cosas raras.  Trata de calcular
> 123456789012345678901234567890 % 123; MySQL te dira 58.  Pero la
> respuesta correcta es 117.  WTF!?  i.e.: no puedes confiar que MySQL te
> entregue respuestas correctas.

bugs los tiene cualquiera no ??  y no son medios rebuscados esos ejemplos ??

> Sobre el rendimiento: mucho se dice que MySQL es mas rapido, pero no te
> dicen que MySQL es mas rapido con tablas MyISAM, y que con tablas InnoDB
> la cosa es mucho mas lenta.  Ahora tambien estan anunciando un "MySQL
> cluster", pero nadie dice que el cluster es un tipo especial de tabla y
> no puedes tener un cluster con tablas InnoDB (==> no puedes tener
> cluster _y_ transacciones _y_ rendimiento ... escoge solo una).

ahi cada uno ve donde le aprieta el zapato, si se puede vivir con eso, cual es 
el problema ??

> En fin ... puras pifias ocultas, que ellos nunca te mencionan.

pocas son las empresas que dicen donde estan sus debilidades (punto a favor de 
pgsql)


>[....]

respondiendo la pregunta original, yo diria que "depende".
En todo caso concuerdo que si aun no han escogido una db y el asunto a 
desarrollar es grande (complejo), mejor tirarse por postgresql.


-- 
Joel A. Iturra
(1)(718)823-3904


Más información sobre la lista de distribución Linux