Índice
MyISAM
[+/-]MERGE
[+/-]ISAM
HEAP
InnoDB
[+/-]InnoDB
BDB
ou BerkeleyDB
[+/-]BDB
BDB
BDB
BDB
:BDB
num futuro próximo:BDB
BDB
BDB
No MySQL Versão 3.23.6, você pode escolher entre 3 formatos de
tabelas básicos (ISAM
, HEAP
e
MyISAM
). Versões mais novas do MySQL suportam
tipos de tabelas adicionais (InnoDB
ou
BDB
), dependendo de como você o compila. Um
banco de dados pode conter tabelas de diferentes tipos.
Ao criar uma nova tabela, você pode dizer ao MySQL que tipo de
tabela criar. O tipo de tabela padrão é, normalmente,
MyISAM
.
MySQL sempre criará um arquivo .frm
para
guardar as definições de coluna e tabela. Os índices e dados da
tabela serão armazenados em um ou mais arquivos, dependendo do tipo
de tabela.
Se você tentar utilziar um tipo de tabela que não está ativa ou
não foi compilada com o MySQL, ele irá criar uma tabela do tipo
MyISAM
. Este comportamento é conveniente quando
você quer copiar tabelas entre servidores MySQL que suportam tipos
de tabel;as diferentes. (Talvez o seu servidor master suporte
mecanismos de armazenamento tarnsacionais para aumento de
segurança, enquanto o servidor slave só utiliza mecanismos de
aramazenamento não-transacionais para maior velocidade.)
Esta mudançaautomatica de tipos de tabela podem confuso para novos usuários MySQL. Planejamos arrumar isto introduzindo avisos no protocolo cliente/servidor na versão 4.1 e gerar um aviso quando uma tipo de tabela é automaticamente alterado.
Você pode converter tabelas entre tipos diferentes com a
instrução ALTER TABLE
. See
Secção 6.5.4, “Sintaxe ALTER TABLE
”.
Note que o MySQL suporta dois tipos diferentes de tabelas: tabelas
seguras com transação (InnoDB
and
BDB
) e tabelas não seguras com tarnsação
HEAP
, ISAM
,
MERGE
, e MyISAM
).
Vantagens de tabelas seguras com transação (TST):
Mais segura. Mesmo se o MySQL falhar ou se você tiver problemas com hardware, você pode ter os seus dados de volta, ou através de recuperação automatica ou de um backup + o log de transação.
Você pode combinar muitas instruções e aceitar todas de uma
vez com o comando COMMIT
.
Você pode executar um ROLLBACK
para ignorar
suas mudanças (se você não estiver rodando em modo
auto-commit).
Se uma atualização falhar, todas as suas mudanças serão restauradas. (Com tabelas NTST todas as mudanças que tiverem sido feitas são permanentes).
Pode fornecer melhor concorrência se a tabela obter muitas atualizações concorrentes com leituras.
Note que para utilizar tabelas InnoDB
você tem
que usar pelo menos a opção de inicialização
innodb_data_file_path
. See
Secção 7.5.3, “Opções de Inicialização do InnoDB”.
Vantagens de tabelas não seguras com transação (NTST):
Muito mais rápida e não há nenhuma sobrecarga de transação.
Usará menos spaço em disco já que não há nenhuma sobrecarga de transação.
Usará menos memória para as atualizações.
Você pode combinar tabelas TST e NTST na mesma instrução para obter o melhor dos dois mundos.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.