Pasé el último año sintiéndome realmente cómodo con MySQL, pero debido a su creciente tendencia y mi deseo de homogeneizar mis aplicaciones web con Heroku, me gustaría comenzar a usar PostgreSQL para mis aplicaciones web. Existen recursos para aprender PostgreSQL, pero realmente no quiero que me expliquen nuevamente los conceptos de la base de datos, y no quiero tener que volver a aprender todo lo que es más o menos lo mismo.
¿Cuáles son las diferencias críticas que necesito entender, sintácticas y conceptuales, entre MySQL y PostgreSQL que me afectarán día a día?
Respuestas:
Depende un poco de cómo esté usando la base de datos. Si está utilizando un ORM, es posible que no note ningún problema en absoluto.
Cambié una aplicación para usar Postgresql (para la implementación en Heroku), pero solo después de descubrir situaciones en las que el SQL creado por Rails funcionaba bien en SQLite, pero no en Postgresql. Invariablemente, los problemas se originaron cuando las combinaciones consultaban el mismo nombre de columna en varias tablas. A SQLite no le importaba, pero Postgresql quería el nombre de relación especificado si estaba en la cláusula 'where'.
Aunque he trabajado con MySQL y Postgresql, no estoy seguro de las diferencias conceptuales fundamentales entre ellos. Ambas son bases de datos cliente-servidor bastante sólidas, aunque PG parece estar generando una mejor reputación.
Sin embargo, definitivamente hay algunas diferencias sintácticas críticas entre MySQL y Postgresql. Encontré una guía decente para aquellos aquí: http://en.wikibooks.org/wiki/Converting_MySQL_to_PostgreSQL
fuente
El más grande es para qué sirve la base de datos. MySQL está construido, esencialmente, para ser un almacén de información para su aplicación. PostgreSQL debe ser una solución de gestión de información para varias aplicaciones que acceden a los mismos datos. Esta diferencia surge de muchas maneras diferentes. Por ejemplo, MySQL permite que las aplicaciones establezcan su propio sql_mode que afecta qué datos se considerarán válidos. PostgreSQL no tiene tal opción. En consecuencia, en MySQL, se recomienda encarecidamente que piense en SQL como una API privada de aplicaciones, mientras que en PostgreSQL es una API que se puede compartir de forma segura entre aplicaciones. Esto lleva a muchas pequeñas diferencias. MySQL es probablemente más fácil de portar una aplicación, pero PostgreSQL es probablemente más fácil de portar un entorno de datos a ...
Puede encontrar lo siguiente útil: http://ledgersmbdev.blogspot.com/2012/09/or-modelling-interlude-postgresql-vs.html
fuente