[Cascavel-pm] Bases de Dados

André Garcia Carneiro andre.garcia.carneir em terra.com.br
Segunda Março 26 13:19:58 PDT 2007


> On 3/26/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> >    E ainda tem gente que respeita uma merda destas... sacanagem!
> 
> Não existe banco de dados mais rápido para aplicações
> write-once-read-many do que o MySQL sob MyISAM. 

Concordo, é bem mais rápido que o Postgres, inclusive.

>Sob InnoDB existem
> foreign keys perfeitamente implementadas, assim como transações,
> indexes mais robustos, etc. Porém é mais lento (ainda assim, bem mais
> rápido que um Postgres).

Discordo. Tive problemas inclusive com tabelas InnoDB. Simplesmente era como se as foreign keys não existissem.
E sim, tenho certeza que as tabelas eram InnoDB. Só depois que eu reinstalei o MySQL é que consegui usar
foreign keys. Mas acho que isso não é uma opção para o nosso amigo Champs....

> 
> >    Existe documentação sobre isso em algum lugar? Alguém sabe me
> > apontar onde nos manuais online do MySQL eu posso encontrar estes
> > problemas listados (e possivelmente explicados e discutidos)?
> Não é um problema ou um bug. MyISAM não enforça constraints de foreign
> key. Não é nem implementado. Só existe isso sob InnoDB. Qualquer
> pessoa que mexeu com MySQL sabe (ou deveria saber) disso.

Chaves estrangeiras é parte essencial de qualquer SGBD. MySQL deveria implementar isso como default, e não
prezar coisas porcas como MyISAM que não implementam FK... essa meleca deveria sumir do mysql, na minha
opinião. De que adianta um banco de dados sem transações e sem constraints???? E por favor não me venham com
papinho de filosofia pro desempenho pro meu lado... não cola, coisa porca é coisa porca e pronto!

Champs, tem uma ferramenta de migração de tabelas disponível no site do mysql que eu não conhecia, tô baixando
ela pra ver se ajuda. Ela vem junto com uma suite com programinhas interessantes para gerenciar o mysql(MySQL
Migration toolkit). Se não me engano o mysqlcc tinha alguma coisa nesse sentido também.

http://www.mysql.com/products/tools

Mas antes, você deveria tentar isso
ALTER TABLE t ENGINE = INNODB;

Cuidado! É melhor fazer isso no banco de testes....

 

Cheers!


--
André Garcia Carneiro
Developer(Perl/PHP)
Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org



Mais detalhes sobre a lista de discussão Cascavel-pm