Você está na página 1de 21

MySQL x PostgreSQL

Quando Usar Cada Um


Fernando Lozano
fernando@lozano.eti.br
Consultor Independente
Prof. Faculdade Metodista Bennett
Prof. Instituto de Tecnologia ORT

III Encontro do Grupo de Usurios Linux de SC


Florianpolis - SC
Maio de 2002

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 1

Sobre o Autor

Red Hat Certified Engineer


LPI Certified Professional Level I
Sair GNU/Linux Certified Professional
IBM Certified Network Engineer
IBM Certified DB2 Administrator & Developer
Microsoft Certified Systems Engineer
Microsoft Certified Solutions Developer
Webmaster da Free Software Foundation
Autor do Livro Java em GNU/Linux
ed. Alta Books, 2002, www.altabooks.com.br

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 2

Porque Escolher Entre o


MySQL e o PostgreSQL?

So os bancos de dados livres mais populares

So os projetos mais antigos e maduros

Suporte de ferramentas livres:


PHP, Perl, Python, Glade / Gnome-DB, ...

Suporte de ferramentas proprietrias


Kylix, Java, Delphi, Visual Basic, ASP, ColdFusion, ...

Outros bancos livres:

Firebird (fork do Interbase Open Source)


SAP-DB

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 3

Bancos Livres x Proprietrios

Os bancos livres em geral suportam:

Otimizao de consultas

Histogramas sobre colunas

Comandos SQL sofisticados

Grants

Campos binrios longos

Grandes volume de dados, usurios e transaes

Replicao

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 4

Bancos Livres x Proprietrios

Os bancos livres ainda no suportam:

Tablespaces

Clustering

Transaes distribudas

Consultas paralelas

Particionamento

Views Materializadas

Bancos Multidimensionais / Aplicaes OLAP

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 5

Sobre 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 verso Windows era shareware

H dois anos foi relicenciado sob a GNU GPL

A empresa mudou de nome para MySQL AB

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 6

Caractersticas do MySQL

Foco em facilidade de administrao e baixo


consumo de recursos do hardware
Se tornou popular graas Internet, pois os
bancos tradicionais tinham tempos de conexo
extremamente elevados, inadequados para
aplicaes CGI
Para atingir seus objetivos, no implementava
funes com grande overhead como integridade
referencial, commit, rollback e nveis de isolamento
de transao

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 7

Caractersticas do MySQL

Servidor multithreaded:
um nico processo mysqld atende a todos os
clientes
Tabelas e ndices correspondem arquivos fsicos
e bancos de dados correspondem diretrios
Distribuio de dados em mltiplos discos deve
ser feita manualmente, por meio de links
simblicos
Segurana via SSL (4.x)

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 8

O MySQL Hoje e Amanh

Hoje (verso 3.23.x):

Mecanismos de armazenamento (tipos de tabela)


com suporte transaes
Recursos SQL mais sofisticados, como agregados
Ainda no implementa alguns recursos bsicos
como views e foreign keys

Prximas verses (4.x, 5.x, ...):

Maior compatibilidade com o padro ANSI


Views e procedimentos armazenados
Full text search

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 9

Plataformas Suportadas pelo


MySQL

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
Vrias ofertas de drivers JDBC 2.0 100% Java

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 10

Quando Usar o MySQL

Back-end para gerao de contedo de web sites


Aplicaes envolvendo basicamente consultas e
adio de dados
No usar para aplicaes com fortes demandas
transacionais, especialmente se houverem
atualizaes concorrentes!
Empresas como o Yahoo Finance combinam o
MySQL (aplicaes web) com um outro banco de
dados (retaguarda financeira)

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 11

Sobre o PostgreSQL

Herdeiro da tradio de pesquisa em BDs da


Universidade da Califrnia 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 usurios assumiu a evoluo da
verso SQL para atender s demandas do meio
empresarial

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 12

Verses do PostgreSQL

6.5 foi a primeira verso considerada estvel para


uso comercial
7.0 finalizou o ciclo de refatoramento do cdigo
legado da verso acadmica
7.1 (hoje 7.1.3) acrescenta novas features sobre o
SQL e o otimizador
7.2 inicia um novo ciclo de adies ao backend
A licena BSD permite a derivao de verses
proprietrias do PostgreSQL

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 13

Caractersticas do PostgreSQL

Implementao completa dos padres ANSI para o


SQL, como selects aninhados, integridade
referencial, views, triggers, ...
Extenses orientadas a objeto, como tipos
abstratos de dados, herana, atributos multivaluados, ...
Funes definidas pelo usurio, mas que no
podem retornar registros, portanto no tem ainda a
mesma funcionalidade dos procedimentos
armazenados em outros bancos

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 14

Caractersticas do PostgreSQL

Servidor em mltiplos processos:


um nico processo postmaster recebe as
conexes de rede, e inicia um processo postgres
para cada cliente
Uso intensivo de memria compartilhada e
semforos pode ser necessrio ajustar
parmetros do kernel para melhorar o desempenho
ou para atender a cargas de trabalho maiores

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 15

Caractersticas do PostgreSQL

Tabelas e ndices correspondem arquivos fsicos


e bancos de dados correspondem diretrios
Podem ser configurados vrios diretrios
diferentes para hospedar (arquivos de) bancos de
dados
Segurana via Kerberos e/ou SSL

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 16

O PostgreSQL Hoje e Amanh

Hoje (verso 7.1.x e 7.2.x):

Views funcionais
Funes definidas pelo usurio em TCL, Perl, C, ...
Outer joins

Linhas de pesquisa (7.x):

Postgres file system, para suporte a raw devices


Mquina Virtual Java integrada ao banco
Backups on-line rpidos
Two-phase commit

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 17

Plataformas Suportadas Pelo


PostgreSQL

Servidor

Sistemas Unix-like
GNU/Linux, FreeBSD, Solaris, AIX, HP-UX, ...
Verses 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

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 18

Quando Usar o PostgreSQL

Aplicaes com fortes componentes transacionais


Aplicaes que necessitem de tipos de dados
especializados, como Sistemas de Informaes
Geogrficas (SIG) e repositrios de meta-dados
Projetos baseados em metodologias Orientadas a
Objeto perda de compatibilidade com o padro
ANSI SQL
Aplicaes OLAP light, que no necessitem do
nvel de sofisticao de um DataWarehouse

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 19

Referncias

PostgreSQL

www.postgresql.org

MySQL
www.mysql.com
Freshmeat
www.freshmeat.net
Sourceforge
www.sourceforge.net

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 20

Perguntas

Dvidas:
fernando@lozano.eti.br
Palestra e
atualizaes:
www.lozano.eti.br
Livro:
Java em GNU/Linux
www.altabooks.com.br

2002 Fernando Lozano, http://www.lozano.eti.br

MySQL x PostgreSQL: Quando Usar Cada Um

Pag. 21

Você também pode gostar