Re: Compatibilidad MySQL/PostgreSQL

Lists: pgsql-es-ayuda
From: Victor Berga <vbergae(at)infonegocio(dot)com>
To: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 16:31:14
Message-ID: 4300C352.9010508@infonegocio.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola a todos,

Soy nuevo en la lista, me llamo Víctor. Escribo porque me gustaría tener
una base de datos que fuese compatible entre MySQL y PostgreSQL para una
aplicación web.

La base de datos la tengo en MySQL 4.1 y me gustaría que también me
funcionase en PostgreSQL 8.0.3.

Cuando exporto el archivo SQL luego el postgresql me lanza muchos
errores de sintaxis.

Si alguien conoce algún método que me lo diga por favor

Gracias,
Víctor


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Victor Berga <vbergae(at)infonegocio(dot)com>
Cc: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 16:50:36
Message-ID: 20050815165036.GE22386@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Mon, Aug 15, 2005 at 06:31:14PM +0200, Victor Berga wrote:
> Hola a todos,
>
> Soy nuevo en la lista, me llamo Víctor. Escribo porque me gustaría tener
> una base de datos que fuese compatible entre MySQL y PostgreSQL para una
> aplicación web.

Cual es el objetivo de que sea compatible con ambas? Por que no
simplemente escoger la mejor y quedarse con esa?

http://www.powerpostgresql.com/Downloads/database_depends_public.sxi

Si no tienes OpenOffice instalado, puedes ver la version Flash:
http://www.powerpostgresql.com/Downloads/database_depends_public.swf

Si no tienes Flash, entonces instala OpenOffice ;-)

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
Voy a acabar con todos los humanos / con los humanos yo acabaré
voy a acabar con todos / con todos los humanos acabaré (Bender)


From: Victor Berga <vbergae(at)infonegocio(dot)com>
To: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 17:12:30
Message-ID: 4300CCFE.9010908@infonegocio.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Alvaro Herrera escribió:

>
>Cual es el objetivo de que sea compatible con ambas? Por que no
>simplemente escoger la mejor y quedarse con esa?
>
>
Es para una aplicación web y me gustaría dar la posibilidad de elección
entre MySQL y PostgreSQL. La capa de abstracción y las consultas están
preparadas, solo falta importar las tablas de MySQL hasta PostgreSQL.

Ese es el motivo de querer utilizar estos 2 motores.

>http://www.powerpostgresql.com/Downloads/database_depends_public.sxi
>
>Si no tienes OpenOffice instalado, puedes ver la version Flash:
>http://www.powerpostgresql.com/Downloads/database_depends_public.swf
>
>Si no tienes Flash, entonces instala OpenOffice ;-)
>
>
>
Tengo OO.org :-)

Gracias.
Víctor


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Victor Berga <vbergae(at)infonegocio(dot)com>
Cc: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 19:38:02
Message-ID: 20050815193802.GH22386@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Mon, Aug 15, 2005 at 07:12:30PM +0200, Victor Berga wrote:
> Alvaro Herrera escribió:
>
> >
> >Cual es el objetivo de que sea compatible con ambas? Por que no
> >simplemente escoger la mejor y quedarse con esa?
> >
> Es para una aplicación web y me gustaría dar la posibilidad de elección
> entre MySQL y PostgreSQL. La capa de abstracción y las consultas están
> preparadas, solo falta importar las tablas de MySQL hasta PostgreSQL.

Algunas cosas de MySQL no funcionan en Postgres. Por ejemplo el tipo
INTEGER y algunos familiares cercanos no aceptan un argumento de
precision, por ejemplo INTEGER(5) no existe; solo existe INTEGER.
Varios otros tipos no existen.

Tampoco existe AUTO_INCREMENT. Se usa SERIAL en su lugar, o una
secuencia. Tampoco existe ENUM.

Por otro lado no veo cual es el objetivo de permitir usar los dos
motores. Por que no simplemente obligar a usar MySQL? Dado que las
caracteristicas de Postgres son un superconjunto de las de MySQL, en la
practica lo que estas haciendo con esto de "dar la posibilidad de
escoger" es decir que solo usaras el "minimo comun denominador". Por
este motivo no podras usar las caracteristicas mas avanzadas de
Postgres, que son las que te podrian dar ventajas frente a MySQL; y para
tus usuarios, la version de tu aplicacion con Postgres sera mas lenta
que la con MySQL, porque en la practica va a estar optimizada para
MySQL, y Postgres solo sera un "ciudadano de segunda clase".

Por otro lado MySQL tiene sus propios problemas:
http://sql-info.de/mysql/gotchas.html
Estas seguro que quieres confiarle datos a un sistema con esos problemas?

Lo malo de que Postgres entregue una version mas lenta de tu aplicacion
web, es que los usuarios ven la version con MySQL y la comparan con la
otra, y dicen "Ahh, Postgres es mucho mas lento". Y quedan con esa
impresion errada de forma permanente.

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"Ellos andaban todos desnudos como su madre los parió, y también las mujeres,
aunque no vi más que una, harto moza, y todos los que yo vi eran todos
mancebos, que ninguno vi de edad de más de XXX años" (Cristóbal Colón)


From: Rafael Taboada <kaliman(dot)forever(at)gmail(dot)com>
To: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 20:15:28
Message-ID: 1c19f391050815131565e0f936@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola Alvaro. Y porque PostgreSQL es mas lento??? Que opciones hay para
revertir este inconveniente???

--
Rafael Taboada
Software Engineer

Cell : +511-97753290

"No creo en el destino pues no me gusta tener la idea de controlar mi vida"


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 20:40:15
Message-ID: 200508152240.17750.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Lunes, 15 de Agosto de 2005 22:15, Rafael Taboada escribió:
> Hola Alvaro. Y porque PostgreSQL es mas lento??? Que opciones hay para
> revertir este inconveniente???

Puede que sea porque puede tratar bases de datos de gran tamaño, cosa que
mysql no hace.
Pero si esto es así, supongo que no tendrá importancia para bases menores en
postgres.
--
Saludos.
Pablo

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net
http://aldiagestion.com/blog


From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Pablo Braulio <brulics(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 21:27:58
Message-ID: f2b9e74905081514276abd1b4b@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Mientras mas mecanismos de integridad, mas lento, postgresql es lo mas
cercano a Oracle por eso. Oracle es mucho mas lento que mysql, ahora
cuando son usuario concurrentes el cuento es otro, Oracle da mayor
estabilidad a la hora de concurrencia y postgres idem, versus mysql.

Comentario personal:
Ahora yo no entiendo por que usar mysql cuando hay sistemas que usan
una o dos tablas giganes, es mucho mejor un programa hecho en C, por
supuesto en ambientes Unix o Linux.

En lo personal solo eh tenido un problema con postgresql y fue cuando
se me fueron los usuarios de la base, los tube que recrear y listo,
pero nunca me preocupe de cual fue el problema, en cambio con mysql eh
visto caidas feas, core dump, problemas al hacer import y export de
los datos (pg_dump) y otras cosas más feas. Y no creo que sea por que
se usa más. Si no por que tiene problemas a la hora de fallas.

2005/8/15, Pablo Braulio <brulics(at)gmail(dot)com>:
> El Lunes, 15 de Agosto de 2005 22:15, Rafael Taboada escribió:
> > Hola Alvaro. Y porque PostgreSQL es mas lento??? Que opciones hay para
> > revertir este inconveniente???
>
> Puede que sea porque puede tratar bases de datos de gran tamaño, cosa que
> mysql no hace.
> Pero si esto es así, supongo que no tendrá importancia para bases menores en
> postgres.
> --
> Saludos.
> Pablo
>
> Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49
> Jabber: bruli(at)myjabber(dot)net
> http://aldiagestion.com/blog
>
>
>

--
Saludos Horacio Miranda.
RedHat Certified Engineer.


From: Pablo Braulio <brulics(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-15 21:46:45
Message-ID: 200508152346.46929.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El Lunes, 15 de Agosto de 2005 23:27, Horacio Miranda escribió:
> Ahora yo no entiendo por que usar mysql cuando hay sistemas que usan
> una o dos tablas giganes, es mucho mejor un programa hecho en C, por
> supuesto en ambientes Unix o Linux.

Es fácil de entender.
Mi caso.
Necesito un programita para mi trabajo. Que me permita gestionar información
en un base de datos, y esta no es de gran tamaño.
Pues para ello tengo php, que no es difícil su uso y para bases de datos
mysql. Php con mysql viene muy documentado, y es generalmente lo que mas se
muestra en los manuales.
Mysql es una empresa (creo) y han hecho su esfuerzo para darlo a conocer. Por
eso se usa tanto.
Yo es lo que hasta ayer estaba haciendo, pero al pensar que mi base de datos
crecerá, pues lo he pensado mejor y estoy cambiando todo a postgres. Esa es
una de las razones.
Bueno pues teniendo en cuenta que es fácil de usar y está muy documentado, es
fácil entender el porque se usa tanto.
--
Saludos.
Pablo

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
Jabber: bruli(at)myjabber(dot)net
http://aldiagestion.com/blog


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Rafael Taboada <kaliman(dot)forever(at)gmail(dot)com>
Cc: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-16 03:27:33
Message-ID: 20050816032733.GD27414@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Mon, Aug 15, 2005 at 03:15:28PM -0500, Rafael Taboada wrote:
> Hola Alvaro. Y porque PostgreSQL es mas lento??? Que opciones hay para
> revertir este inconveniente???

Hay varios motivos: uno es que los chequeos sobre los datos de entrada
son mas intensos (por esto es que MySQL acepta una fecha "31 de febrero"
mientras que Postgres la rechaza). Esto agrega un poco de sobrecosto.

Otro es que para poder implementar transaccionalidad, hay un sobrecosto
de almacenamiento en disco; y por lo tanto para hacer busquedas, hay que
leer mas estructuras en disco, perseguir mas punteros, lo cual hace un
poco mas lento el recorrido.

Ademas, se hacen ciertas operaciones para asegurar que tus datos van a
seguir siendo validos aun en caso de que el suministro electrico se
interrumpa. Caracteristicas asi, individualmente no imponen mucho
tiempo de procesamiento extra. Pero entre todas, hacen que el sistema
sea medible y consistentemente mas lento.

Ahora, si te fijas bien, MySQL tambien tiene un modo transaccional: las
tablas InnoDB. Es interesante notar que si haces comparaciones de
rendimiento entre un sistema MySQL con InnoDB y Postgres, los resultados
son muy similares.

Otra cosa es que el motor de Postgres es mucho mas poderoso e
inteligente que el de MySQL. MySQL es pura "fuerza bruta": su principal
fortaleza es entregar respuestas muy rapidas a consultas simples. Por lo
tanto, muchas de las cosas que quieres hacer tienes que implementarlas
en tu codigo de aplicacion (PHP o lo que sea). En cambio, si aprovechas
las mucho mayores capacidades de Postgres, puedes obtener respuestas mas
elaboradas desde la base de datos, y dejar menos procesamiento a la
aplicacion.

Esto no es teoria -- hay un proyecto llamado tpc-w-php que es un TPC-W
implementado en PHP, tanto para MySQL como para Postgres. El codigo
aprovecha todas las capacidades de Postgres, pero en MySQL muchas cosas
hubo que implementarlas en PHP. El resultado es que el codigo de
Postgres es mucho mas limpio, el de MySQL es mucho mas feo y mayor, y
sorpresa -- al final, el rendimiento es comparable entre ambos. Aunque
Postgres sea "mas lento", tu lo haces trabajar a tu favor dandole mas
tarea. Cosa que no puedes hacer con el InnoDB de MySQL, porque aunque
tiene capacidades transaccionales, el motor sigue siendo estupido.
(Ademas, las transacciones no lo son todo)

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
That's because in Europe they call me by name, and in the US by value!"


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Pablo Braulio <brulics(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-16 03:28:13
Message-ID: 20050816032813.GE27414@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Mon, Aug 15, 2005 at 10:40:15PM +0200, Pablo Braulio wrote:
> El Lunes, 15 de Agosto de 2005 22:15, Rafael Taboada escribió:
> > Hola Alvaro. Y porque PostgreSQL es mas lento??? Que opciones hay para
> > revertir este inconveniente???
>
> Puede que sea porque puede tratar bases de datos de gran tamaño, cosa que
> mysql no hace.

No tiene nada que ver con el tamaño.

--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"In Europe they call me Niklaus Wirth; in the US they call me Nickel's worth.
That's because in Europe they call me by name, and in the US by value!"


From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Rafael Taboada <kaliman(dot)forever(at)gmail(dot)com>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Compatibilidad MySQL/PostgreSQL
Date: 2005-08-16 06:39:42
Message-ID: c2d9e70e05081523392fdc7f19@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 8/15/05, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> On Mon, Aug 15, 2005 at 03:15:28PM -0500, Rafael Taboada wrote:
> > Hola Alvaro. Y porque PostgreSQL es mas lento??? Que opciones hay para
> > revertir este inconveniente???
>
> Hay varios motivos: uno es que los chequeos sobre los datos de entrada
> son mas intensos (por esto es que MySQL acepta una fecha "31 de febrero"
> mientras que Postgres la rechaza). Esto agrega un poco de sobrecosto.
>
> Otro es que para poder implementar transaccionalidad, hay un sobrecosto
> de almacenamiento en disco; y por lo tanto para hacer busquedas, hay que
> leer mas estructuras en disco, perseguir mas punteros, lo cual hace un
> poco mas lento el recorrido.
>
> Ademas, se hacen ciertas operaciones para asegurar que tus datos van a
> seguir siendo validos aun en caso de que el suministro electrico se
> interrumpa. Caracteristicas asi, individualmente no imponen mucho
> tiempo de procesamiento extra. Pero entre todas, hacen que el sistema
> sea medible y consistentemente mas lento.
>
> Ahora, si te fijas bien, MySQL tambien tiene un modo transaccional: las
> tablas InnoDB. Es interesante notar que si haces comparaciones de
> rendimiento entre un sistema MySQL con InnoDB y Postgres, los resultados
> son muy similares.
>
> Otra cosa es que el motor de Postgres es mucho mas poderoso e
> inteligente que el de MySQL. MySQL es pura "fuerza bruta": su principal
> fortaleza es entregar respuestas muy rapidas a consultas simples.

En otras palabras, que si quieres consultas super veloces y no te
interesa si la informacion que vas a mostrar es correcta MySQL es tu
eleccion.
Si en cambio prefieres que la informacion sea confiable aunque tengas
que esperar unos milisegundos mas (con un poco de trabajo de
optimizacion) PostgreSQL es tu motor.

> --
> Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
> "In Europe they call me Niklaus Wirth; in the US they call me Nickel's
> worth.
> That's because in Europe they call me by name, and in the US by value!"
>

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)