Un programador errante en busca de la sabiduría...

PostgreSQL vs SQLserver

Este es un articulo muy interesante sobre PostgreSQL vs SQLserver que compara ambos motores de base de datos relacionales desde varias puntos de diferentes. Tratare de resumir (y traducir) los puntos mas relevantes de dicha comparación. pg-versus-ms

Facilidad de uso de postgres

Cualquier analizador de datos puede hacer lo que otro analizador puede hacer. El «puedo hacer X en la plataforma A y no puedo hacer X en la plataforma B» no existe como tal, puedo hacer lo mismo en la base de datos postgresql y en mssql. Ambas cumplen bien las reglas de álgebra relacional. La diferencia es que las buenas herramientas hacen las cosas fáciles, la malas herramientas hacen las cosas difíciles.

PostgreSQL is clearly written by people who actually care about getting stuff done. MS SQL Server feels like it was written by people who never have to actually use MS SQL Server to achieve anything. Here are a few examples to back this up:

/* POSTGRESQL */
DROP TABLE IF EXISTS my_table;

/* MSSQL */
IF OBJECT_ID (N'dbo.my_table', N'U') IS NOT NULL
DROP TABLE dbo.my_table;

Esto anterior es algo que necesitaba dejar intacto por que es la mayor realidad del desarrollo de software, las cosas bien echas están creadas por personas que las necesitan de verdad, ejemplo.

Postgres tiene «DROP TABLE IF EXISTS» que es bastante lógico. «Si no existe, no lo hagas» con diferencia de mssql.

Postgresql es Multiplataforma y Microsoft le sigue el camino

PostgreSQL puede correr en Linux, BSD y windows. Por lo contrario MSSQL solo corre en windows. La política de Microsoft siempre a sido atrapar al cliente en sus productos, esto protege sus ganancias pero no es necesariamente bueno para los programadores.

Si, ahora «.NET «es «OpenSource», pero históricamente tenemos el ejemplo de el estándar «Office Open XML». Microsoft jugo todos los trucos sucios que existen para no perder su poderío de Office y hoy en día admitamoslo Libre office no es realmente una opción para oficinistas serios. Lo mismo pasa y pasara con .NET

Cuando este articulo fue escrito los intentos de Microsoft por entrar al opensource eran... bueno, se veían con cautela. Hoy en día a fecha del 2020 Microsoft a demostrado que sus intentos con el opensource van enserio y ya es posible instalar Mssql en linux de forma muy estable, aunque este aun no es opensource.

Programar con otros lenguajes

PostgreSQL es muy fácil de conectar y utilizar en entornos de programación, su librería libpq y su API externa están muy bien diseñadas y documentadas por el contrario MSSQL es solo plug and play en entornos de desarrollo Microsoft, todo lo que este fuera de esto necesita instalaciones fastidiosas de drivers (en el caso de linux) y librerías que solo la mamá del programador aventurado (que escribió la librería) conoce.

La documentación de postgres en relación a su uso con un lenguaje podríamos decir que esta fragmentada por todo Internet, sin embargo eso no es necesariamente malo. no podemos usar documentación genérica para el uso de cada librería de X lenguaje. Toda esta documentación esta escrita por programadores para programadores y no nos toparemos con que 2/3 de la documentación no toca ni un detalle técnico.

Para Microsoft su documentación es un negocio y esta tiene que ser aburrida, seca, extremadamente categorizada y debe comenzar con aspectos que pueda interesarle al gerente para lograr la compra de sus servicios.

PostgreSQL es mas lento que MSSQL

A more accurate rephrasing would be «MS SQL Server is slightly more forgiving if you don’t know what you’re doing».

Para ciertas operaciones postgres es mal lento que mssql. El ejemplo mas sencillo es el Count(*) donde es mssql es prácticamente instantáneo debido a la distinta forma de resolver la concurrencia en cada plataforma.

Postgres es lento «out-of-the-box» por que sus configuraciones son mínimas, cualquier desarrollador serio puede configurar en poco tiempo para usar mas recursos. por otro lado postgres cuenta con mayor tipo de indexación de datos que pueden hacer a una consulta mas rápida si se sabe lo que se esta haciendo.

the argument about speed is never only about computer time; it is about developer time too. That’s why high-level languages like PHP and Python are very popular, despite the fact that C kicks the shit out of them when it comes to execution speed. They are slower to run but much faster to use for development. Would you prefer to spend an hour writing maintainable, elegant SQL followed by an hour of runtime, or spend three days writing buggy, desperate workarounds followed by 45 minutes of runtime?


Ultima revisión:



Usamos cookies. Leer más