Revista Do Linux
EDIÇÃO DO MÊS
 Gráficos
 Comandos Avançados
 Portáteis

 Capa
 Entrevista
 CD
 Distro
 GNU
 Evento
 Depoimento
 Programação

 

sql mania
Poucos produtos de software são tão amados e odiados ao mesmo tempo como o MySQL. Recentemente lançado sob a licença GPL, ganhou respeito de alguns detratores e foi adotado por puristas como a Red Hat. Nesta entrevista, Michael "Monty" Widenius nos fala sobre problemas como velocidade, fraudes em benchmaks, e o eterno dilema: o que o usuário precisa versus o que o padrão manda

Revista do Linux — Não posso iniciar a entrevista sem felicitá-lo pelos prêmios que o MySQL recebeu em 2000, principalmente do Linux Journal e da Linux Magazine. É sempre algo especial receber esse reconhecimento ou não importa muito? Qual a relevância de prêmios como esses para o MySQL?

Michael Widenius — Obrigado! Cada prêmio que recebemos é especial e nós naturalmente ficamos muito felizes em recebê-los! Eles fazem nossos esforços valer a pena, e nos fazem ter energia de sobra para superar novos limites.
Esse prêmio é também um reconhecimento de que fizemos algo bom e nos ajuda a alcançar novos usuários.

RdL — Você tem uma boa fotografia da presença do MySQL pelo mundo? Agora e num futuro próximo? Quem usa o MySQL?

MW — Como somos uma empresa de Open Source e não obrigamos os usuários a registrar os produtos que baixam do nosso site, é muito difícil estimar o número de instalações do MySQL. Temos perto de 50 mirrors, e todas as grandes distribuições do Linux incluem o MySQL em seus discos de instalação. Também somos sempre distribuídos em revistas.
Baseados no número de downloads a partir de IPs distintos e apenas do nosso site principal, estimamos que existam aproximadamente dois milhões de servidores MySQL instalados ao redor do globo. O número real pode, claro, ser um pouco menor ou muito maior. Segundo pesquisas realizadas em sites como Slashdot e Linux.com, o MySQL possui mais de 40% do market share para bancos de dados voltados à Web. Assumimos que a maioria de nossos grandes usuários são grandes sites (Slashdot, SourceForge, Yahoo finance...).
Mas agora, graças ao Berkeley DB, da Sleepycat, possuímos suporte a transações e poderemos aumentar nossa penetração em outras áreas.

RdL — E num futuro mais distante?

MW — Nosso objetivo a longo prazo é que qualquer coisa que precise armazenar dados utilize o MySQL.

RdL — Recentemente você previu algum impacto dos bancos de dados abertos no mercado. Quando você acha que os Open Source vão destronar gigantes como a Oracle?

MW — Penso que isso não será possível dentro de dez anos. A Oracle é muito boa em muitas áreas e conseguiu fazer com que as pessoas acreditem que seja "a única escolha em bancos de dados" (The Database of Choice (tm), o lema de uma das campanhas publicitárias da Oracle). Levaremos muito tempo até que essas pessoas aceitem que existem alternativas melhores para suas necessidades.
Por outro lado, tenho certeza de que muito em breve (em um ano?) a Oracle e outros fabricantes de bancos de dados comerciais terão problemas em muitas áreas que agora dominam. À medida que os DBs Open Source sejam cada vez mais reconhecidos e suportem mais funcionalidades, mais companhias irão adotá-lo.
A Oracle será com certeza capaz de sobreviver, mas muitos outros fabricantes de bancos de dados comerciais estarão em apuros. A verdade é simples: nem todos precisam de todas as funcionalidades que o Oracle oferece e ficarão felizes em ter uma solução mais barata. Os demais fabricantes ficarão perdidos entre a Oracle e o Open Source.

RdL — Falando sobre o produto MySQL: quem é seu usuário? Websites como o Slashdot, sites de e-commerce, bancos de dados para aplicações intranet... Existe um "usuário típico"?

MW — Sabemos que o MySQL é muito popular em sites de e-commerce, especialmente sob Unix. Também sabemos que muitos rodam o MySQL no

Windows, mas não temos idéia do tipo de aplicação que é executada nesse ambiente. Logo teremos uma pesquisa em nosso site (www.mysql.com) e teremos uma perspectiva melhor.

RdL — E as funcionalidades que estão faltando no MySQL? Algumas são muito importantes para alguns usuários: chaves estrangeiras, stored procedures, subselects, triggers, transactions... Existe uma TODO LIST para implementação dessas funcionalidades?

MW — No manual do MySQL há uma TODO LIST. Nela listamos as funcionalidades a adicionar por ordem de prioridade.
A maioria das pessoas com quem falamos realmente não precisa de chaves estrangeiras da maneira como definida pelo ANSI SQL. As características mais utilizadas das chaves estrangeiras são a exclusão em cascata e poder exportar a chave estrangeira para uma ferramenta de modelagem de dados.
O MySQL 4.0, que deve estar disponível em breve, deverá atender a esses dois pontos. Subselects e suporte total a chaves estrangeiras devem estar prontos para o MySQL 4.1, no primeiro trimestre de 2001. A versão 4.1 deverá suportar stored procedures e transactions, se conseguirmos encontrar a tempo um desenvolvedor especialista nisso.
A longo prazo, implementaremos tudo o que determina a ANSI SQL mais recente. O plano, entretanto, é desenvolvê-lo de forma a não fazer o usuário sofrer com espaço em disco ou desempenho devido a facilidades que ele não usa.

RdL — O MaxSQL é um produto único, à parte, constitui um esforço para implementar facilidades transacionais?

MW — Devido à solicitação de muitos usuários, o nome oficial do produto foi alterado para MySQL-max. A idéia é ter duas distribuições separadas: o MySQL, um pequeno e magro servidor SQL quando se precisa do básico à velocidade máxima, e o MySQL-max, no qual todas as facilidades do MySQL são compiladas por default.

RdL — Um usuário muito ofendido disse no DevShed: "Não me importaria em usar o MySQL não fosse a pretensão dos desenvolvedores em dizer que é um banco SQL... por que não chamá-lo simplesmente de MyDB"? O que você poderia dizer para ele?

MW — O MySQL suporta um subconjunto estendido da linguagem SQL, da mesma maneira que outros servidores SQL. Como NENHUM servidor suporta todo o padrão ANSI SQL 99, pode-se dizer (na visão desse usuário) que não existe servidor SQL na face da Terra! Para mim, é justo dizer que um servidor de banco de dados que se utilize da linguagem SQL seja chamado de um servidor SQL. É o caso do MySQL.

RdL — Agora, as desculpas: você não fica meio doido respondendo às mesmas perguntas o tempo todo? Que tipo de FAQs, documentação e outras coisas você recomenda para o usuário ANTES que ele o "açoite" com perguntas já respondidas? E onde esses recursos estão?

MW — É, eu regularmente respondo às mesmas perguntas o tempo todo. Para evitar isso, tentei documentar tudo sobre o MySQL no manual. Seria muito bom se todos dessem uma rápida olhada lá antes de disparar contra mim...

RdL — O MySQL sempre é visto como um banco de dados voltado para a Web. Você o recomendaria para aplicações desktop, também?

MW — Claro! Como o MySQL é rápido e utiliza poucos recursos da máquina, é perfeito para aplicações desktop. A única coisa de que sentimos falta é uma interface GUI integrada ao sistema. Nosso MySQLGUI é razoável, mas ainda não está muito estável. Estamos trabalhando em um novo GUI que tornará o uso do MySQL facílimo para todos os níveis de usuários.

RdL — O MySQL não era usado por muitos puristas porque não era GPL (esse tipo de purista costuma usar o Postgres). Agora existe uma versão GPL do MySQL e uma versão comercial. Por que demorar tanto para se tornar GPL?

MW — Antes de o MySQL se tornar GPL ele já era livre para a maioria dos fins. A licença anterior servia para termos o mesmo benefício comercial que uma biblioteca GPL possui. O MySQL era livre em Unix desde que a mídia na qual foi distribuído pudesse ser redistribuída.
Pensávamos que isso era livre o bastante ao mesmo tempo em que nos dava um certo faturamento. Mas as outras pessoas do movimento Open Source não concordavam conosco e por causa disso finalmente mudamos a licença para GPL. Assim, pulamos a parte da discussão estéril sobre licenças!
Precisávamos ganhar dinheiro com as licenças para ter recursos, afim de poder desenvolver o MySQL em período integral. Foi graças ao dinheiro dos primeiros dias dessa política de licenças que o MySQL pôde chegar onde está hoje! Agora que somos suficientemente grandes para viver de suporte técnico podemos nos dar ao luxo de liberar o MySQL pela GPL. No começo isso não seria possível, mas estava planejado desde então. E, para muitas finalidades, a GPL não acrescentou nada em relação à antiga licença.

RdL — A Red Hat sempre se negou a usar o MySQL. Recentemente, eles a incluíram em sua distro (RH7). No site do MySQL, você disse que isso era devido à adoção da licença GPL. Foi simples assim? O que realmente aconteceu?

MW — Sim, foi simples assim. Mesmo que nossa licença anterior permitisse que a Red Hat colocasse o MySQL em seu CDROM, eles não o fariam por razões políticas. Para a Red Hat, só entra em seu CD o que for "Open Source" no sentido restrito da palavra. Não concordamos com eles que isso fosse realmente de interesse da comunidade, mas pelo menos o problema foi resolvido com a GPL. Ponto final.

RdL — Durante o último Dia das Bruxas (31 de outubro) a MySQL AB anunciou o "primeiro programa de treinamento oficial de MySQL nos Estados Unidos". Do que se trata?

MW — Bem, o programa é mantido no site NuSPheres em Boston pela empresa Polycon e foi MUITO bem recebido. É muito bom saber que agora podemos oferecer um programa de treinamento de alta qualidade para usuários que querem se iniciar ou aumentar seus conhecimentos no mundo do MySQL.

RdL — Há planos de estender esse programa para outros países? Por exemplo, Brasil e Índia, que são grandes produtores de software e exportadores de talentos.

MW — Sim, gostaríamos muito. É importante que todos os usuários do MySQL recebam treinamento em sua própria língua. Mas precisamos priorizar as coisas e isso levará um certo tempo.

RdL — Não poderia terminar a entrevista sem perguntar sobre o teste de benchmark entre Postgres e MySQL patrocinado pela empresa GreatBridge. Aquilo foi uma fraude ou simplesmente um teste de benchmark malconduzido?

MW — Não acho que tenha sido uma farsa, mas foi realmente um teste muitíssimo malconduzido! Eles não queriam utilizar as bibliotecas e versões do MySQL que recomendamos e não nos deram a oportunidade de duplicar o teste para ter a contraprova. Eles ainda otimizaram (com "vácuo") o banco de dados para o Postgres, mas não fizeram nada similar com os outros bancos. Em outras palavras, não foram só injustos com o MySQL, mas também com o Oracle e mesmo com o Microsoft SQL Server!
O principal ponto foi o de não ter uma glibc atualizada no servidor Red Hat deles. O MySQL 3.3 vem linkado estaticamente com a glibc correta. Com ela, rodamos o MySQL com 100 clientes a 8.200 acessos por segundo em um Dual Xeon 500, e os resultados conflitam severamente com os da GreatBridge.

RdL — Voltando a uma pergunta que eu lhe fiz há pouco: o Postgres um dia será tão rápido quanto o MySQL? Mudando a pergunta: o MySQL será tão "completo" quanto o Postgres?

MW — O MySQL permite que diversos backends estejam disponíveis para diversos métodos de acesso. Portanto, nosso desempenho está em um nível que o pessoal do Postgres dificilmente atingirá. Se eles tentarem fazer algo parecido terão um grande problema nas mãos, pois eles afirmam que o usuário SEMPRE PRECISARÁ de características transacionais. Opinião essa, aliás, com a qual não concordamos.
Por outro lado, o MySQL oferece, sim, muitas funcionalidades que o Postgres não oferece. Dê uma olhada na página crash-me. Mas concordo que o PostgreSQL possui algumas características "da pesada" que não possuímos, ainda...
Muitas das tão aclamadas funcionalidades do PostgreSQL foram adicionadas recentemente, portanto, não vejo dificuldade alguma em adicioná-las ao MySQL logo, logo. Como eu disse antes, planejamos atender ao padrão ANSI SQL o mais breve possível. Quando estivermos em igualdade de características, então apenas a velocidade vai interessar. Aí veremos!

 

A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux