21
© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 1 MySQL x PostgreSQL MySQL x PostgreSQL Quando Usar Cada Um Quando Usar Cada Um Fernando Lozano Fernando Lozano [email protected] [email protected] Consultor Independente Prof. Faculdade Metodista Bennett Prof. Instituto de Tecnologia ORT III Encontro do Grupo de Usuários Linux de SC Florianópolis - SC Maio de 2002

Postgresql x Mysql

Embed Size (px)

Citation preview

Page 1: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 1

MySQL x PostgreSQLMySQL x PostgreSQLQuando Usar Cada UmQuando Usar Cada Um

Fernando LozanoFernando [email protected]@lozano.eti.br

Consultor IndependenteProf. Faculdade Metodista BennettProf. Instituto de Tecnologia ORT

III Encontro do Grupo de Usuários Linux de SC Florianópolis - SC

Maio de 2002

Page 2: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 2

Sobre o AutorSobre o Autor

● Red Hat Certified EngineerLPI Certified Professional Level ISair GNU/Linux Certified Professional

● IBM Certified Network EngineerIBM Certified DB2 Administrator & Developer

● Microsoft Certified Systems EngineerMicrosoft Certified Solutions Developer

● Webmaster da Free Software Foundation● Autor do Livro “Java em GNU/Linux”

ed. Alta Books, 2002, www.altabooks.com.br

Page 3: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 3

Porque Escolher Entre o Porque Escolher Entre o MySQL e o PostgreSQL?MySQL e o PostgreSQL?

● São os bancos de dados livres mais populares

● São os projetos mais antigos e maduros

● Suporte de ferramentas livres:PHP, Perl, Python, Glade / Gnome-DB, ...

● Suporte de ferramentas proprietáriasKylix, Java, Delphi, Visual Basic, ASP, ColdFusion, ...

● Outros bancos livres:● Firebird (fork do Interbase Open Source)● SAP-DB

Page 4: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 4

Bancos Livres x ProprietáriosBancos Livres x Proprietários

● Os bancos livres em geral suportam:● Otimização de consultas● Histogramas sobre colunas● Comandos SQL sofisticados● Grants● Campos binários longos● Grandes volume de dados, usuários e transações● Replicação

Page 5: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 5

Bancos Livres x ProprietáriosBancos Livres x Proprietários

● Os bancos livres ainda não suportam:● Tablespaces● Clustering● Transações distribuídas● Consultas paralelas● Particionamento● Views Materializadas● Bancos Multidimensionais / Aplicações OLAP

Page 6: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 6

Sobre o MySQLSobre o MySQL

● Surgiu à partir de um formato de arquivos ISAM desenvolvido pela Datakonsult AB

● Implementava o mesmo protocolo de rede e APIs do mSQL (miniSQL), um banco freeware

● A versão Windows era shareware

● Há dois anos foi relicenciado sob a GNU GPL

● A empresa mudou de nome para MySQL AB

Page 7: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 7

Características do MySQLCaracterísticas do MySQL

● Foco em facilidade de administração e baixo consumo de recursos do hardware

● Se tornou popular graças à Internet, pois os bancos tradicionais tinham tempos de conexão extremamente elevados, inadequados para aplicações CGI

● Para atingir seus objetivos, não implementava funções com grande overhead como integridade referencial, commit, rollback e níveis de isolamento de transação

Page 8: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 8

Características do MySQLCaracterísticas do MySQL

● Servidor multithreaded:um único processo mysqld atende a todos os clientes

● Tabelas e índices correspondem à arquivos físicos e bancos de dados correspondem à diretórios

● Distribuição de dados em múltiplos discos deve ser feita manualmente, por meio de links simbólicos

● Segurança via SSL (4.x)

Page 9: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 9

O MySQL Hoje e AmanhãO MySQL Hoje e Amanhã

● Hoje (versão 3.23.x):● Mecanismos de armazenamento (tipos de tabela)

com suporte à transações● Recursos SQL mais sofisticados, como agregados● Ainda não implementa alguns recursos básicos

como views e foreign keys● Próximas versões (4.x, 5.x, ...):

● Maior compatibilidade com o padrão ANSI● Views e procedimentos armazenados● Full text search

Page 10: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 10

Plataformas Suportadas pelo Plataformas Suportadas pelo MySQLMySQL

● Servidor● Sistemas Unix-Like:

GNU/Linux, FreeBSD, Solaris, AIX, HP-UX, ...● Win32:

Windows 95/98/ME, Windows NT/2000/XP/NET● OS/2 (Em desenvolvimento para BeOS e LynxOS)

● Cliente:● Drivers ODBC (3.0) e dbExpress para Unix e

Windows● Várias ofertas de drivers JDBC 2.0 100% Java

Page 11: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 11

Quando Usar o MySQLQuando Usar o MySQL

● Back-end para geração de conteúdo de web sites

● Aplicações envolvendo basicamente consultas e adição de dados

● Não usar para aplicações com fortes demandas transacionais, especialmente se houverem atualizações concorrentes!

● Empresas como o Yahoo Finance combinam o MySQL (aplicações web) com um outro banco de dados (retaguarda financeira)

Page 12: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 12

Sobre o PostgreSQLSobre o PostgreSQL

● Herdeiro da tradição de pesquisa em BDs da Universidade da Califórnia em Berkeley

● O Ingres “criou” a tecnologia relacional; o Postgres (post-Ingres) focava a tecnologia de objetos

● Projetos de estudantes acrescentaram o suporte ao SQL, gerando o PostgreSQL

● Um grupo de usuários assumiu a evolução da versão SQL para atender às demandas do meio empresarial

Page 13: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 13

Versões do PostgreSQLVersões do PostgreSQL

● 6.5 foi a primeira versão considerada “estável” para uso comercial

● 7.0 finalizou o ciclo de refatoramento do código legado da versão acadêmica

● 7.1 (hoje 7.1.3) acrescenta novas features sobre o SQL e o otimizador

● 7.2 inicia um novo ciclo de adições ao backend

● A licença BSD permite a derivação de versões proprietárias do PostgreSQL

Page 14: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 14

Características do PostgreSQLCaracterísticas do PostgreSQL

● Implementação completa dos padrões ANSI para o SQL, como selects aninhados, integridade referencial, views, triggers, ...

● Extensões orientadas a objeto, como tipos abstratos de dados, herança, atributos multi-valuados, ...

● Funções definidas pelo usuário, mas que não podem retornar registros, portanto não tem ainda a mesma funcionalidade dos procedimentos armazenados em outros bancos

Page 15: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 15

Características do PostgreSQLCaracterísticas do PostgreSQL

● Servidor em múltiplos processos:um único processo postmaster recebe as conexões de rede, e inicia um processo postgres para cada cliente

● Uso intensivo de memória compartilhada e semáforos – pode ser necessário ajustar parâmetros do kernel para melhorar o desempenho ou para atender a cargas de trabalho maiores

Page 16: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 16

Características do PostgreSQLCaracterísticas do PostgreSQL

● Tabelas e índices correspondem à arquivos físicos e bancos de dados correspondem à diretórios

● Podem ser configurados vários diretórios diferentes para hospedar (arquivos de) bancos de dados

● Segurança via Kerberos e/ou SSL

Page 17: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 17

O PostgreSQL Hoje e AmanhãO PostgreSQL Hoje e Amanhã

● Hoje (versão 7.1.x e 7.2.x):● Views funcionais● Funções definidas pelo usuário em TCL, Perl, C, ...● Outer joins

● Linhas de pesquisa (7.x):● Postgres file system, para suporte a raw devices● Máquina Virtual Java integrada ao banco● Backups on-line rápidos● Two-phase commit

Page 18: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 18

Plataformas Suportadas Pelo Plataformas Suportadas Pelo PostgreSQLPostgreSQL

● Servidor● Sistemas Unix-like

GNU/Linux, FreeBSD, Solaris, AIX, HP-UX, ...● Versões experimentais para

Windows NT/2000/XP/NET (Cygwin) e MacOS X● Cliente

● Bibliotecas nativas C para Unix, Win95/NT e OS/2● Drivers ODBC (2.5) e dbExpress nativos para Unix

e Windows● Driver JDBC 1.0 (2.0 parcial) 100% Java

Page 19: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 19

Quando Usar o PostgreSQLQuando Usar o PostgreSQL

● Aplicações com fortes componentes transacionais

● Aplicações que necessitem de tipos de dados especializados, como Sistemas de Informações Geográficas (SIG) e repositórios de meta-dados

● Projetos baseados em metodologias Orientadas a Objeto – perda de compatibilidade com o padrão ANSI SQL

● Aplicações OLAP “light”, que não necessitem do nível de sofisticação de um DataWarehouse

Page 20: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 20

ReferênciasReferências

● PostgreSQLwww.postgresql.org

● MySQLwww.mysql.com

● Freshmeatwww.freshmeat.net

● Sourceforgewww.sourceforge.net

Page 21: Postgresql x Mysql

© 2002 Fernando Lozano, http://www.lozano.eti.br MySQL x PostgreSQL: Quando Usar Cada Um Pag. 21

PerguntasPerguntas

● Dúvidas:[email protected]

● Palestra e atualizações:www.lozano.eti.br

● Livro:Java em GNU/Linuxwww.altabooks.com.br