PostgreSQL vs MySQL

¿Qué animal te gusta más?¿El delfín o el elefante? Es una pregunta complicada, a fin de cuentas ambos son dos mamíferos simpáticos, así que a la hora de elegir un SGBD no será la mascota quien decante la balanza hacia un lado u otro.

Haciendo un poco de historia, Postgres es más veterano. El proyecto nació en la universidad de Berkeley en el año del mundial de Naranjito (1982), aunque no incluyó un intérprete de SQL hasta 1995 (antes utilizaba un lenguaje propio, el Postquel), cuando Andrew Yu y Jolly Chen lo metieron en la versión 4.2, dando lugar a Postgres95, que luego se convertiría en PostgreSQL (bajo licencia BSD), y que a principios de la década de los ’00 sería el SGBD más popular. Por su parte MySQL, creado por la empresa sueca MySQL AB (y está bajo licencia GPL desde la versión 3.2), nació a finales de los 90 y allá por 2004, con su versión 4.1, ya se había convertido en el SGBD de código abierto más popular, por encima de PostgreSQL. Desde aquella ha permanecido en el número 1 de forma incuestionable, aunque en los últimos meses se está viendo un cambio de tendencia, con muchos usuarios volviendo a PostgreSQL.

Este cambio se debe a que, en 2008, MySQL AB fue adquirida por SUN Microsystems (hasta ahí, sin problemas), empresa que fue comprada en abril de 2009 por la multinacional Oracle (ahí empezó el mosqueo). Oracle tradicionalmente ha sido una empresa vinculada a la filosofía del software propietario, pioneros en la innovación de complejos sistemas anticopia para sus productos y con fama de “peseteros” (dicen que a su lado las hordas de Gates y Jobs parecerían discípulos de Stallman). Las primeras medidas de Oracle fueron encarecer las tarifas de soporte y cargarse las gratuitas, lo que puso la mosca tras la oreja a muchos usuarios de MySQL. Además, la existencia de un SGBD privativo (y bastante caro) de Oracle lleva a muchos a pensar que puede haber un conflicto de intereses, que puede llevar a Oracle a dejar un poco de lado MySQL para centrarse en su producto privativo.

No me meteré a buscar diferencias en sus motores, sus funciones o sus funcionalidades, dado que no los he estudiado tan profundamente y mi conocimiento se basa, simplemente, en el uso que he dado a los mismos en proyectos Java o PHP. Estudiando DAI mayoritariamente utilizaba MySQL para ese tipo de proyectos (y alguna vez MS-SQLServer de Microsoft, aunque comparando a nivel de usuario creo que no merece la pena pagar el precio de la licencia disponiendo, gratuitamente, de dos SGBD tan potentes como estos, sin contar las implicaciones morales de las licencias de uno u otro), aunque en los últimos meses he estado probando PostgreSQL.

A la hora de utilizar ambos SGBD en Java apenas he notado diferencias, en cuanto a funciones existentes. En PHP en teoría hay más funciones para MySQL, pero yo al menos no he notado que falte ninguna esencial, y hasta me parece más flexible a la hora de realizar la conexión a la base de datos. MySQL supera a PostgreSQL en todo lo referente a velocidad, tanto en consultas pequeñas como en las más grandes (para 1.000.000 de inserciones con datos aleatorios, en el mismo equipo, MySQL lo hace en un 25% menos de tiempo). En cambio el elefante gana en otros campos: tanto a la hora de mantener la integridad referencial, a la hora de usar triggers, en estabilidad y seguridad, a la hora de utilizarlo para programar cosas complejas o en cuanto a facilidad de uso. MySQL tiene más funciones predefinidas, aunque no permite crear tipos de datos definidos por el usuario como si lo hace Postgres. Si se trabaja con datos del tipo “TIME”, Postgres da mucha mayor precisión que MySQL (en determinados casos esto puede ser importante, en otros trivial). A la hora de la instalación, tanto en Windows como en Linux el premio es para los chicos de Berkeley, y de hecho en Windows XP da bastante la lata instalar el Workbench (entorno gráfico) de MySQL.

En resumen ¿Cual es mejor? Es difícil decidirlo. El debate en internet es encarnizado y lleva abierto el último lustro, con fanboys de ambos SGBD tirándose los trastos a la cabeza. Por las características de cada uno, bien diferentes, la conveniencia de usar uno u otro es una cuestión más del ámbito del uso que se le dará al mismo que de las características intrínsecas de cada software. PostgreSQL seguramente sea más indicado para aplicaciones complejas o que requieran una mayor seguridad (datos bancarios, datos sanitarios) mientras que MySQL se lleva la palma en cuanto a velocidad y bajo consumo de recursos, haciéndolo más adecuado para almacenar usuarios de una página web sin datos trascendentales, por ejemplo.

Anuncios

2 comentarios en “PostgreSQL vs MySQL

  1. Pingback: Encuesta: ¿Qué sistema gestor de bases de datos preferís? « donnierock

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s