Base de datos

Martes, 19 Junio 2018 21:50

MySQL vs. PostgreSQL

Written by 
Rate this item
(0 votes)

Hemos estado buscando por internet información y comparativas sobre MySQL y PostgreSQL para ver cuál puede ser mejor, y la información es abundante pero confusa. Hay muchos comentarios al respecto, la mayoría de ellos catalogables dentro de las "guerras santas" como las que se producen en las comparaciones "Linux vs. Windows", "Mac vs. PC", etc... Para hacerse una idea, basta con ver todas las páginas que aparecen en el buscador google al buscar "postgres vs mysql" o hacer una búsqueda similar en SlashDot.

Podemos sacar estas conclusiones:

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:

Postgres 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 BASTANTES más recursos y carga más el sistema.

Límite del tamaño de cada fila de las tablas a 8k!!! (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.

En cuanto a consideraciones de estabilidad del servidor, cada comparativa da datos contradictorios. En general parece que MySQL es más estable (aunque también hay gente que opina lo contrario), y que Postgres tiende a desperdiciar memoria y sobrecargar bastante el sistema (aunque de nuevo, hay opiniones distintas).

 

Como conclusión a la comparación entre MySQL y Postgres, parece aceptado que MySQL junto con Apache y PHP forman un buen equipo para servir páginas web con contenido dinámico, discusiones, noticias, etc., por ejemplo al estilo de SlashDot. En general, sistemas en los que la velocidad y el número de accesos concurrentes sea algo primordial, y la seguridad no sea muy importante (pueda bastar con hacer backups periódicos que se restaurarán tras una caida del servidor). En cambio, para sistemas más serios en las que la consistencia de la BD sea fundamental (BD con información realmente importante, bancos, etc.) PostgreSQL es una mejor opción pese a su mayor lentitud.

Read 122 times

Leave a comment

Make sure you enter the (*) required information where indicated. HTML code is not allowed.

Sobre CNERIS

CNERIS es una empresa constituida por jóvenes emprendedores procedentes de diferentes sectores del mundo de la información. Nuestro equipo está compuesto por programadores, administradores de sistemas, administradores de base de datos, diseñadores gráficos, maquetadores,