Postgresql x Mysql

  • View
    175

  • Download
    0

Embed Size (px)

Text of Postgresql x Mysql

MySQL x PostgreSQL Quando Usar Cada UmFernando Lozano fernando@lozano.eti.brConsultor 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.brMySQL x PostgreSQL: Quando Usar Cada Um Pag. 2

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

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 proprietriasKylix, 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 transaoMySQL x PostgreSQL: Quando Usar Cada Um Pag. 7

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

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 Maior compatibilidade com o padro ANSI Views e procedimentos armazenados Full text searchMySQL x PostgreSQL: Quando Usar Cada Um Pag. 9

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

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

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) Drivers ODBC (3.0) e dbExpress para Unix e Windows Vrias ofertas de drivers JDBC 2.0 100% Java

Cliente:

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 PostgreSQLMySQL x PostgreSQL: Quando Usar Cada Um Pag. 13

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

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 bancosMySQL x PostgreSQL: Quando Usar Cada Um Pag. 14

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

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 Postgres file system, para suporte a raw devices Mquina Virtual Java integrada ao banco Backups on-line rpidos Two-phase commit

Linhas de pesquisa (7.x):

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 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

Cliente

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