Mudando do MySQL para o PostgreSQL?

8

Passei o último ano me sentindo realmente confortável com o MySQL, mas devido à sua tendência crescente e meu desejo de homogeneizar meus aplicativos da web com o Heroku, eu gostaria de começar a usar o PostgreSQL para meus aplicativos da web. Existem recursos disponíveis para aprender o PostgreSQL, mas eu realmente não quero que os conceitos de banco de dados sejam explicados para mim do zero novamente, e não quero ter que reaprender todas as coisas praticamente iguais.

Quais são as diferenças críticas que eu preciso entender - sintáticas e conceituais - entre o MySQL e o PostgreSQL que me afetarão no dia-a-dia?

Andrew Latham
fonte
1
Não existe 'G' maiúsculo no 'PostgreSQL'.
tdammers

Respostas:

4

Depende um pouco de como você está usando o banco de dados. Se você estiver usando um ORM, poderá não notar nenhum problema.

Troquei um aplicativo para usar o Postgresql (para implantação no Heroku), mas somente depois de descobrir situações em que o SQL criado pelo Rails funcionava bem no SQLite, mas não no Postgresql. Invariavelmente, os problemas eram causados ​​quando as associações estavam consultando o mesmo nome da coluna em várias tabelas. O SQLite não se importava, mas o Postgresql queria o nome da relação especificado se estivesse na cláusula 'where'.

Embora eu tenha trabalhado com o MySQL e o Postgresql, não tenho certeza de nenhuma diferença conceitual fundamental entre eles. Ambos são bancos de dados cliente-servidor bastante sólidos, embora o PG pareça estar gerando uma reputação melhor.

No entanto, existem definitivamente algumas diferenças sintáticas críticas entre o MySQL e o Postgresql. Encontrei um guia decente para quem está aqui: http://en.wikibooks.org/wiki/Converting_MySQL_to_PostgreSQL

Catharz
fonte
1
"SQLite não ligou". Parece um bom motivo para usar o Postgres. Duas tabelas com o mesmo nome de coluna podem armazenar dados totalmente diferentes e não relacionados.
mike30
1

Quais são as diferenças críticas que eu preciso entender - sintáticas e conceituais - entre o MySQL e o PostgreSQL que me afetarão no dia-a-dia?

O maior deles é para o que existe o banco de dados. O MySQL é construído, essencialmente, para ser um armazenamento de informações para sua aplicação. O PostgreSQL existe uma solução de gerenciamento de informações para várias aplicações que atingem os mesmos dados. Essa diferença surge de várias maneiras diferentes. Por exemplo, o MySQL permite que os aplicativos definam seu próprio sql_mode, o que afeta quais dados serão vistos como válidos. O PostgreSQL não tem essa opção. Consequentemente, no MySQL, é altamente recomendável pensar no SQL como uma API privada de aplicativos, enquanto no PostgreSQL existe uma API que pode ser compartilhada com segurança entre aplicativos. Isso leva a muitas pequenas diferenças. O MySQL é provavelmente mais fácil de portar um aplicativo, mas o PostgreSQL é provavelmente mais fácil de portar um ambiente de dados para ....

Você pode encontrar o seguinte para ajudar: http://ledgersmbdev.blogspot.com/2012/09/or-modelling-interlude-postgresql-vs.html

Chris Travers
fonte