PostgreeSQL y MySQL se ha prolongado
muchos años como los gestores de base de datos por excelencia. En el comienzo, PostgreSQL
era el sistema de base de datos de código abierto más rico en características,
mientras que MySQL era el más rápido de los dos. Sin embargo, a lo largo del
tiempo estos sistemas han convergido y las diferencias se han vuelto mucho más
sutiles. Hoy en día, muchos proyectos se ejecutarían tan bien en un sistema de
base de datos como en el otro. Además, ambas opciones de código abierto ofrecen
una dura competencia a sus alternativas de código cerrado y más costoso. Las
principales diferencias giran en torno a conformidad SQL, necesidades de
desarrollo, cumplimiento ACID y proyectos de pila LAMP.
Conformidad SQL
Una de las primeras mayores diferencias entre
PostgreSQL y MySQL tratan de la conformidad SQL. Los dos sistemas de bases de
datos usan el Lenguaje Estructurado de Consultas (SQL), pero sólo uno de ellos
está conforme al estándar establecido por la Organización Internacional de
Normalización (ISO). Cuando es importante que tu código se adhiera a este
estándar, PostgreSQL es tu mejor opción. Esto te permitirá hacer fácilmente una
transición de PostgreSQL a otro sistema de base de datos mientras tu proyecto
se desarrolla. Sin embargo, esto también significa que no serás capaz de pedir
prestado código de otros proyectos desarrollados en MySQL, los cuales no son
conformes al SQL estándar de ISO. Esto presenta una difícil decisión que
debería hacer basándose en las necesidades actuales y futuras de su proyecto.
Nuevos Desarrollos
Cuando estés creando un nuevo
proyecto por tu cuenta, desde el principio, entonces deberías usar PostgreSQL.
Porque el sistema de base de datos es más fiable y construido sobre estándares
intenacionales. Dado que MySQL y PostgreSQL son ambos proyectos de código
abierto, el coste de usar un sistema u otro es el mismo. Quitando el coste de
la ecuación, PostgreSQL es la opción obvia para nuevos desarrollos de proyectos
porque ofrece una superior protección de datos. Incluso si estás más
familiarizado con MySQL, siempre puedes apuntarte a un curso online sobre
PostgreSQL. No obstante, si planeas ampliar en proyectos de código abierto
PostgreSQL puede no ser la mejor opción.
Proyectos de Código Abierto
En la biblioteca de proyectos
de código abierto ya existentes, MySQL es el sistema de base de datos más
popular. Al principio, esto se debió principalmente a la velocidad de MySQL
sobre PostgreSQL. Ahora, el factor principal de la popularidad de MySQL es su
uso establecido en gran cantidad de proyectos. De esta manera, si piensa usar,
contribuir, o empezar un proyecto de código abierto probablemente quiera
mantenerse con MySQL. Esto le hará mucho más fácil conseguir que otros
desarrolladores participen en sus proyectos. También encontrará que existen
muchos más cursos online que enseñan MySQL que PostgreSQL. Además, es más fácil
pedir prestado código de proyectos de código abierto si está usando MySQL.
Pedir Prestado Código de Proyectos de Código Abierto
Ya que MySQL no cumple con el estándar ISO para
SQL, gran parte del código que ejecuta en MySQL no funcionará en PostgreSQL.
Esto significa que si quiere pedir prestado código de proyectos de código
abierto que usen MySQL, tendría que reescribir el código para que funcione con
PostgreSQL (aquí hay una clase que puede ayudar con la traducción PostgreSQL).
Esto contradice el objetivo de pedir prestado código abierto porque tendrá que
gastar tiempo desarrollando y probando algo que debería ser tan sencillo como
copiar y pegar. En lugar de eso, es mucho más fácil usar simplemente MySQL
cuando piensa pedir prestado código de proyectos de código abierto.
MySQL
- Su principal objetivo de diseño fue la VELOCIDAD. Se sacrificaron algunas características esenciales en sistemas más "serios" con este fin.
- Otra característica importante es que consume muy pocos recursos, tanto de CPU como de memoria.
- Licencia GPL a partir de la versión 3.23.19.
Ventajas:
- Mayor rendimiento. Mayor velocidad tanto al conectar con el servidor como al servir selects y demás.
- Mejores utilidades de administración (backup, recuperación de errores, etc).
- Aunque se cuelgue, no suele perder información ni corromper los datos.
- Mejor integración con PHP.
- No hay límites en el tamaño de los registros.
- Mejor control de acceso, en el sentido de qué usuarios tienen acceso a qué tablas y con qué permisos.
- MySQL se comporta mejor que Postgres a la hora de modificar o añadir campos a una tabla "en caliente".
Inconvenientes:
- No soporta transacciones, "roll-backs" ni subselects.
- No considera las claves ajenas. Ignora la integridad referencial, dejándola en manos del programador de la aplicación.
PostgreSQL
- PostgreSQL intenta ser un sistena de bases de datos de mayor nivel que MySQL, a la altura de Oracle, Sybase o Interbase.
- Licencia BSD.
Ventajas:
- Por su arquitectura de diseño, escala muy bien al aumentar el número de CPUs y la cantidad de RAM.
- Soporta transacciones y desde la versión 7.0, claves ajenas (con comprobaciones de integridad referencial).
- Tiene mejor soporte para triggers y procedimientos en el servidor.
- Soporta un subconjunto de SQL92 mayor que el que soporta MySQL. Además, tiene ciertas características orientadas a objetos.
Inconvenientes:
- Consume más recursos y carga más el sistema.
- Límite del tamaño de cada fila de las tablas a 8 (se puede ampliar a 32k recompilando, pero con un coste añadido en el rendimiento).
- Es de 2 a 3 veces más lenta que MySQL.
- Menos funciones en PHP.
Síntesis
Como
conclusión a la comparación entre MySQL y PostgreSQL, parece aceptado que MySQL junto con Apache y PHP forman un buen equipo para servir páginas web, además permite
la reutilización de código lo que puede crear un compendio de programadores
trabajando y mejorando códigos e inclusive lenguajes de programación, además de
ser mucho más rápido e integrarse al servidor y lenguaje de manera más eficiente,
por lo que en definitiva MyQSL es la mejor opción a nuestro parecer, por su
parte PostgreSQL debe permitir a los programadores poder reutilizar el código ya
que reescribirlo amerita la utilización de horas hombre de manera abrupta y ralentiza
el trabajo de creación de una página web.
Autores:
José Agustín Torrez C.
Carlos Eduardo Araque A.