cual - MySQL vs PostgreSQL para aplicaciones web
postgresql vs mariadb (11)
Estoy trabajando en una aplicación web usando Python (Django) y me gustaría saber si MySQL o PostgreSQL serían más adecuados cuando se implemente para producción.
En un podcast Joel dijo que tenía algunos problemas con MySQL y que los datos no eran consistentes.
Me gustaría saber si alguien tuvo tales problemas. ¿También cuando se trata de rendimiento que se puede ajustar fácilmente?
@WolfmanDragon
PostgreSQL tiene soporte (pequeño) para objetos, pero es, por naturaleza, una base de datos relacional. Desde su página sobre :
PostgreSQL es un potente sistema de base de datos relacional de fuente abierta.
Algunos dicen que MySQL es simple y rápido.
Rápido: bueno, si usa el motor de almacenamiento MyIsam predeterminado, es rápido. Tiene una característica de base de datos casi nula, pero es rápida. Si fuera sarcástico, diría que un grep en un archivo plano también es rápido. Curiosamente, no está tan lejos de cómo MyIsam almacena datos. Así que no esperes ninguna función de base de datos relacional allí. Ni siquiera restricciones de integridad de referencia.
Simple: supongamos que quiere un subconjunto justo de funciones de bases de datos reales. Algunas cosas, como las restricciones de integridad, desencadenantes, aislamiento de transacciones, índices funcionales, ¿tal vez? Entonces, obviamente, tiene que dejar el motor MyIsam alejado y elegir uno de los otros 3 principales motores de almacenamiento. Quienes han sido desarrollados por diferentes proveedores, cada uno con una configuración / comportamiento particular.
Consulte una descripción general de los motores de almacenamiento , y si no le da dolor de cabeza, aceptaré que MySql es simple desde su punto de vista.
A partir de esos hechos, dejaré que te hagas a la idea de aquellos que dicen que MySql es rápido y simple.
Si desea escalar más, ahorrar tiempo, tener errores menos extraños para cazar, tener un código de aplicación más simple, dedicar más tiempo a optimizar su negocio, no pelear con su base de datos, entonces la solución de código abierto de elección es Postgresql.
Aunque está un poco desactualizado, valdría la pena leer la página de MySQL Gotchas . Muchos de los elementos enumerados allí siguen siendo ciertos, a mi leal saber y entender.
Yo uso PostgreSQL.
Bueno, no creo que debas utilizar una marca de base de datos diferente en ningún desarrollo anterior (compilación, puesta en escena, prod) ya que eso volverá a morderte.
Por lo que entiendo, PostgreSQL es una implementación de base de datos más ''correcta'', mientras que mySQl es menos correcta (menos compatible) pero más rápida.
Entonces, si estás escribiendo una aplicación CRUD, mySQL es el camino a seguir. Si necesita ciertas funciones de su base de datos (si no está seguro, entonces no), puede consultar postgreSQL.
Gracias. He usado Django con MySQL y está bien. Elija su base de datos en las características que necesita. Difícil de comparar MySQL y Postgres. Es mejor comparar Postgress con SQl Server.
MySQL es un sistema de administración de bases de datos relacionales, mientras que PostgreSQL es un sistema de administración de bases de datos relacionales de objetos . PostgreSQL es adecuado para desarrolladores de C ++ o Java, ya que nos da más control sobre cómo se escriben las consultas. ORDBMS también nos proporciona Objetos y Tipos Definidos por el Usuario. Las consultas SQL están mucho más cerca de los estándares ISO que MySQL.
¿Necesita un ORDBMS o un RDBMS? Eso responderá mejor a tu pregunta.
No he usado Django, pero he usado MySQL y PostgreSQL. Si va a utilizar su base de datos solo como back-end para Django, no importa demasiado, porque abstraerá la mayoría de las diferencias. PostgreSQL es un poco más escalable (no llega a la pared tan rápido como MySQL a medida que aumenta el tamaño de los datos / clientes).
La verdadera diferencia aparece si estás haciendo un nuevo sistema. Luego, recomiendo PostgreSQL, porque tiene muchas más características que hacen que su capa de base de datos sea mucho más personalizable para que pueda ajustarla a cualquier requisito que pueda tener.
Si está escribiendo una aplicación que puede distribuirse bastante en diferentes servidores, MySQL tiene mucho peso sobre PostgreSQL debido a la portabilidad. PostgreSQL es difícil de encontrar en servidores web menos que satisfactorios, aunque hay algunos. En la mayoría de los aspectos, PostgreSQL es más lento que MySQL, especialmente cuando se trata de un ajuste fino al final. Con todo, yo diría darle una oportunidad a PostgreSQL por un corto período de tiempo, de esa manera no lo evitará por completo, y luego emitirá un juicio.
Solo sonó muchos meses después.
Las capacidades geográficas de las dos bases de datos son muy, muy diferentes. PostgreSQL tiene la excepcional extensión PostGIS. La funcionalidad geográfica de MySQL es prácticamente cero en comparación.
Si su servicio web tiene un componente de ubicación, elija PostgreSQL.
Yo uso ambos extensamente. Mi elección para un proyecto en particular se reduce a:
- Licencias: ¿vas a distribuir tu aplicación (IANAL)?
- Infraestructura existente y base de conocimiento
- Cualquier salsa especial que tengas que tener.
Por salsa especial , cosas como:
- replicación fácil / barata = MySQL
- Enormes problemas de conjunto de datos con pequeños resultados = PostgreSQL. Use las extensiones de idioma y tenga operaciones de datos muy eficientes. (PL / Python, PL / TCL, PL / Perl, etc.)
- Interfaz con R Statistical Libraries = PostgreSQL PL/R disponible en debian / ubuntu
Una nota para los lectores en el futuro: el texto a continuación fue editado por última vez en agosto de 2008. Eso fue hace casi 5 años a partir de esta edición. El software puede cambiar rápidamente de una versión a otra, por lo tanto, antes de elegir un DBMS basado en los consejos que figuran a continuación, investigue si aún es preciso.
¿Mejor?
MySQL es mucho más comúnmente proporcionado por los servidores web.
PostgreSQL es un producto mucho más maduro.
Esta es una discusión que aborda su "mejor" pregunta
Aparentemente, de acuerdo con esta página web , MySQL es rápido cuando los niveles de acceso concurrentes son bajos, y cuando hay muchas más lecturas que escrituras. Por otro lado, exhibe baja escalabilidad con cargas crecientes y relaciones de escritura / lectura. PostgreSQL es relativamente lento a niveles de concurrencia bajos, pero se escala bien con el aumento de los niveles de carga, al tiempo que proporciona suficiente aislamiento entre los accesos simultáneos para evitar ralentizaciones en altas relaciones de escritura / lectura. Continúa vinculándose a una serie de comparaciones de rendimiento, porque estas cosas son muy ... sensibles a las condiciones.
Entonces, si su factor de decisión es "¿ qué es más rápido? ", Entonces la respuesta es "depende. Si realmente importa, pruebe su aplicación contra ambas " . Y si realmente le importa, obtendrá dos DBA (uno que se especialice) en cada base de datos) y hacer que sintonicen la mierda de las bases de datos, y luego elegir. Es asombroso qué tan buenos son los DBA buenos ; y valen cada centavo .
Cuando importa
Lo cual probablemente no sea así, así que simplemente elija la base de datos que le guste y vaya con ella; se puede comprar un mejor rendimiento con más RAM y CPU, y un diseño de base de datos más apropiado, trucos de procedimientos almacenados inteligentes, etc., y todo eso es más barato y fácil para el sitio web aleatorio X que agonizar sobre qué elegir, MySQL o PostgreSQL , y el ajuste especializado de DBA costosos.
Joel también dijo en ese podcast que el comentario volvería a morderlo porque la gente diría que MySQL era una mierda: Joel no pudo obtener uncount
de las filas. El plural de anécdota no es información. Él dijo : MySQL es la única base de datos que he programado en mi carrera que ha tenido problemas de integridad de datos, donde hace consultas y recibe respuestas sin sentido, que son incorrectas.
y él también dijo:
Es solo una anécdota. Y esa es una de las cosas que me frustra, en realidad, sobre los blogs o simplemente Internet en general. [...] Hay una extraña tendencia a convertir las anécdotas en verdades y, de hecho, como blogger, comienzo a sentirme un poco culpable por esto.