Pregunta

Estoy trabajando en una aplicación web que utiliza Python (Django) y me gustaría saber si MySQL o PostgreSQL serían más adecuados a la hora de implementarlos para producción.

En uno podcast Joel dijo que tuvo algunos problemas con MySQL y que los datos no eran consistentes.

Me gustaría saber si alguien tuvo algún problema de este tipo.¿También en lo que respecta al rendimiento, que se puede modificar fácilmente?

¿Fue útil?

Solución

Una nota para futuros lectores: El texto siguiente 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 que antes de elegir un DBMS según los consejos a continuación, investigue un poco para ver si sigue siendo preciso.


¿Mejor?

MySQL es mucho más comúnmente proporcionado por servidores web.

PostgreSQL es un producto mucho más maduro.

hay esta discusión aborda su "mejor" pregunta

Al parecer, según esta pagina web, MySQL es rápido cuando los niveles de acceso simultáneo son bajos y cuando hay muchas más lecturas que escrituras.Por otro lado, presenta una baja escalabilidad con cargas y relaciones de escritura/lectura crecientes.PostgreSQL es relativamente lento en niveles de concurrencia bajos, pero se escala bien con niveles de carga crecientes, al tiempo que proporciona suficiente aislamiento entre accesos simultáneos para evitar ralentizaciones en proporciones altas de escritura/lectura.Continúa vinculando varias comparaciones de rendimiento, porque estas cosas son muy...sensible a las condiciones.

Entonces, si su factor de decisión es "¿Cual es mas rápido?" Entonces la respuesta es "depende". Si realmente importa, pruebe su aplicación con ambos." Y si realmente te importa, contratas a dos administradores de bases de datos (uno que se especializa en cada base de datos) y les pides que desconecten las bases de datos y luego elijan.Es sorprendente lo caro bien Los DBA son;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 conseguir un mejor rendimiento con más RAM y CPU, y un diseño de base de datos más apropiado, y trucos inteligentes de procedimientos almacenados, etc., y todo eso es más barato y más fácil para Random-website-X que preocuparse por elegir MySQL o PostgreSQL. y ajustes especializados de costosos administradores de bases de datos.


Joel también dijo en ese podcast que ese comentario volvería en su contra porque la gente diría que MySQL era una mierda: Joel no podía entenderlo. count de filas atrás.El plural de anécdota no es dato. Él dijo:

MySQL es la única base de datos con la que he programado en mi carrera que ha tenido problemas de integridad de datos, donde haces consultas y obtienes respuestas sin sentido, que son incorrectas.

y también dijo:

Es sólo una anécdota.Y esa es una de las cosas que me frustra, en realidad, acerca de los blogs o simplemente de Internet en general.[...] Hay una extraña tendencia a convertir las anécdotas en verdades y, de hecho, como blogger estoy empezando a sentirme un poco culpable por esto.

Otros consejos

Algunos dicen que MySQL es simple y rápido.

Rápido: bueno, si usa el motor de almacenamiento predeterminado MyIsam, es rápido.No tiene casi ninguna función de base de datos importante, pero es rápido.Si fuera sarcástico, diría que un grep en una lima plana también es rápido.Curiosamente, no está tan lejos de cómo MyIsam almacena datos.Así que no espere ninguna característica de base de datos relacional allí.Ni siquiera hacer referencia a las restricciones de integridad.

Simple: ahora digamos que desea un subconjunto justo de características reales de la base de datos.¿Algunas cosas como restricciones de integridad, desencadenantes, aislamiento de transacciones, tal vez índices funcionales?Entonces, obviamente, debe dejar de lado el motor MyIsam y elegir entre uno de los otros 3 motores de almacenamiento principales.Que han sido desarrollados por diferentes proveedores, cada uno con una configuración/comportamiento particular.

Verificar una descripción general de los motores de almacenamiento, y si no te duele la cabeza, estoy de acuerdo en que MySql es simple desde tu punto de vista.

A partir de esos hechos, te dejaré decidir sobre aquellos que dicen que MySql es rápido y simple.

Si desea escalar más, ahorrar tiempo, tener menos errores extraños que buscar, tener un código de aplicación más simple, dedicar más tiempo a optimizar su negocio, sin pelear con su base de datos, entonces la solución de código abierto preferida es Postgresql.

No he usado Django, pero sí MySQL y PostgreSQL.Si va a utilizar su base de datos sólo como back-end para Django, no importa mucho, porque abstraerá la mayoría de las diferencias.PostgreSQL es un poco más escalable (no golpea la pared de ladrillos tan rápido como MySQL a medida que aumenta el tamaño de los datos/el número de clientes).

La verdadera diferencia surge si estás creando un sistema nuevo.Entonces recomendaría PostgreSQL sin lugar a dudas, 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.

Simplemente repitiendo 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 nula en comparación.

Si su servicio web tiene un componente de ubicación, elija PostgreSQL.

Aunque está un poco desactualizado, valdría la pena leerlo. Errores de MySQL página.Muchos de los elementos enumerados allí siguen siendo ciertos, hasta donde yo sé.

Yo uso PostgreSQL.

Utilizo ambos ampliamente.Mi elección para un proyecto en particular se reduce a:

  • Licencias - ¿Vas a distribuir tu aplicación (IANAL)
  • Infraestructura existente y base de conocimientos
  • Cualquier salsa especial Tienes que tener.

Por salsa especial Yo cosas como:

  • replicación fácil/barata = MySQL
  • Grandes problemas de conjuntos de datos con pequeños resultados = PostgreSQL.Utilice las extensiones de idioma y realice operaciones de datos muy eficientes.(PL/Python, PL/TCL, PL/Perl, etc.)
  • Interfaz con bibliotecas estadísticas R = PostgreSQL PL/R disponible en debian/ubuntu

Bueno, no creo que debas usar una marca de base de datos diferente en nada del desarrollo anterior (construcción, puesta en escena, producción), ya que eso volverá en tu contra.

Según tengo entendido, 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 las necesita), es posible que desee consultar PostgreSQL.

Si está escribiendo una aplicación que puede distribuirse bastante en diferentes servidores, MySQL tiene mucho peso sobre PostgreSQL debido a su portabilidad.PostgreSQL es difícil de encontrar en servidores web poco satisfactorios, aunque hay algunos.En la mayoría de los aspectos, PostgreSQL es más lento que MySQL, especialmente cuando se trata de ajustes finales.Con todo, yo diría que le des una oportunidad a PostgreSQL por un corto período de tiempo, de esa manera no lo evitarás por completo, y luego emitirás un juicio.

Gracias.He usado Django con MySQL y está bien.Elija su base de datos según las funciones que necesita.Es difícil comparar MySQL y Postgres.Es mejor comparar Postgress con SQl Server.

@hombrelobodragon

PostgreSQL tiene (pequeño) soporte para objetos, pero es, por naturaleza, una base de datos relacional.De su acerca de la página:

PostgreSQL es un potente código abierto relacional sistema de bases de datos.

MySQL es un sistema de gestión de bases de datos relacionales mientras que PostgreSQL es un objeto-sistema de gestión de bases de datos relacionales.PostgreSQL es adecuado para desarrolladores de C++ o Java, ya que nos brinda más control sobre cómo se escriben las consultas.ORDBMS también nos brinda objetos y tipos definidos por el usuario.Las consultas SQL en sí 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top