1/ISAM
ISAM é uma abordagem bem definida e comprovada no tempo para gerenciamento de tabelas de dados, projetada com o banco de dados sendo consultado com muito mais frequência do que atualizado. Como resultado, o ISAM realiza leituras rapidamente e não consome muitos recursos de memória e armazenamento. As duas principais desvantagens do ISAM são que ele não suporta processamento de transações e não é tolerante a falhas: se seu disco rígido travar, os arquivos de dados não poderão ser recuperados. Se você está usando ISAM para aplicações críticas, deve sempre fazer backup de todos os seus dados em tempo real, e o MySQL pode suportar esses aplicativos de backup graças ao seu recurso de replicação.
2/InnoDB
Ele oferece uma função de controle de transações, que garante que um conjunto de comandos seja executado com sucesso, ou, quando ocorre algum erro de comando, o resultado de todos os comandos é revertido; pode-se imaginar que a capacidade de controle de transações é muito importante no banco eletrônico. Suporte para COMMIT, ROLLBACK e outros recursos de transação. A versão mais recente do Mysql já planeja remover o suporte ao BDB em favor do InnoDB.
MyIASM é uma nova versão das tabelas IASM com as seguintes extensões: Portabilidade no nível binário. Índice da coluna NULL. Há menos fragmentos para linhas variáveis do que para tabelas ISAM. Suporte para arquivos grandes. Melhor compressão do índice. É melhor ter uma distribuição estatística? Processamento auto_increment melhor e mais rápido.
Aqui estão alguns detalhes e diferenças específicas na implementação:
1. O InnoDB não suporta índices do tipo FULLTEXT. 2. Tabelas não são salvas no InnoDB linhas específicas, ou seja, executam select count(*) de O InnoDB escaneia toda a tabela para calcular quantas linhas existem, mas o MyISAM simplesmente lê as linhas salvas. Note que quando a instrução count(*) contém onde condição, a operação de ambas as tabelas é a mesma. 3. Para campos de AUTO_INCREMENT tipo, o índice com apenas esse campo deve ser incluído no InnoDB, mas na tabela MyISAM, é possível criar um índice federado com outros campos. 4.DELETE Tabela FROM, o InnoDB não recria a tabela, mas a exclui linha por linha. 5. TABELA DE CARGA A PARTIR A operação MASTER não funciona para o InnoDB, a solução é mudar a tabela do InnoDB para a tabela MyISAM primeiro, importar os dados e depois trocá-los para a tabela do InnoDB, mas não é aplicável a tabelas que utilizam recursos adicionais do InnoDB (como chaves estrangeiras).
Além disso, o bloqueio de linha de uma tabela InnoDB não é absoluto; se o MySQL não conseguir determinar o escopo a ser escaneado ao executar uma instrução SQL, a tabela InnoDB também bloqueará toda a tabela, como update Conjunto de tabelas num=1 onde nome como "A%"
Nenhuma tabela é onipotente, somente escolhendo o tipo de tabela apropriado para o tipo de negócio podemos maximizar as vantagens de desempenho do MySQL.
MySQL Quando o Administrador cria um banco de datos, a tabela assume por padrão o tipo InnoDB.
No meu ISAM Qual é a diferença entre os dois tipos: O tipo MyISAM não suporta processamento avançado, como o processamento de transações, enquanto o tipo InnoDB suporta. Tabelas do tipo MyISAM enfatizam o desempenho, que executa vários graus mais rápido que o tipo InnoDB, mas não oferece suporte transacional, enquanto o InnoDB oferece recursos avançados de banco de dados, como suporte transacional, chaves estrangeiras, etc.
Arquivos de dados binários do tipo MyISAM podem ser migrados entre diferentes sistemas operacionais. Ou seja, pode ser copiado diretamente do sistema Windows para o sistema Linux.
Modificar o tipo de motor da tabela:
ALTER TABLE tablename ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Método de Acesso Sequencial É o método padrão para armazenar registros e arquivos. Comparado a outros motores de armazenamento, o MyISAM possui a maioria das ferramentas para checar e reparar tabelas. As tabelas MyISAM podem ser comprimidas e suportam busca em texto completo. Elas não são transacionais seguras e não suportam chaves estrangeiras. Se algo for revertido, isso causará um retrocesso incompleto e não é atômico. Se um grande número de execuções for realizado TheSELECT, MyISAM é a melhor escolha.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
Para tipos InnoDB que suportam coisas, o principal motivo que afeta a velocidade é que a configuração padrão AUTOCOMMIT está ativada e o programa não chama explicitamente BEGIN Inicie uma transação, resultando em um commit automático para cada inserção, o que afeta seriamente a velocidade. Você pode chamar o start antes da execução do SQL, e múltiplos SQL formam uma coisa (mesmo que o autocommit seja feito também pode ser ativado), o que melhorará muito o desempenho.
1. Visualize as informações da tabela, incluindo o tipo de motor utilizado, codificação de caracteres, estrutura da tabela, etc
Use este comando
mysql> mostrar criar tabela T1; --t1 é o nome da tabela
2. O seguinte comando pode ser executado para trocar tabelas não transacionais para transações (dados não são perdidos), as tabelas innodb são mais seguras que as tabelas myisam: Tabela de alterações T1 tipo=innodb; --t1 é o nome da tabela
3. A tabela innodb não pode ser table_name com o comando da tabela de reparos e myisamchk -r Mas você pode usar uma tabela de verificação t1, e mysqlcheck [OPTIONS] [tabelas]
4. Os seguintes parâmetros foram adicionados à linha de comando para iniciar o banco de dados mysql, fazendo com que todas as tabelas de dados mysql recém-lançadas usem por padrão transações ( Isso afeta apenas a instrução create. ) --padrão-tipo-tabel=InnoDB
5. Alterar temporariamente o tipo padrão da tabela pode ser feito por: conjunto table_type=InnoDB;
MyISAM Vantagens: alta velocidade, menos espaço em disco ocupado; O uso do disco de um banco de dados ou tabela pode ser encontrado tanto verificando o tamanho do arquivo correspondente (pasta) pelo sistema operacional quanto usando a instrução SQL SHOW TABLE STATUS Contras: Sem mecanismo de integridade de dados, ou seja, sem suporte para transações e chaves estrangeiras
InnoDB Vantagens: Suporte a transações e chaves estrangeiras, além de mecanismo completo de integridade de dados. Você pode usar MOSTRAR STATUS DA TABELA para verificar a ocupação do disco de uma biblioteca ou tabela Desvantagens: velocidade ultra-lenta, grande espaço em disco ocupado; Todas as bibliotecas são armazenadas em um (geralmente) ou vários arquivos, e o sistema operacional não consegue saber quanto espaço uma biblioteca ou tabela tem
BDB Vantagens: Suportar transações, não suportar chaves estrangeiras, porque, com base no suporte a transações, chaves estrangeiras podem ser implementadas indiretamente no lado do cliente do banco de dados (que pode ser o lado servidor do cliente final, como o PHP), então a integridade dos dados ainda é garantida; Desvantagens: baixa velocidade, alto uso de disco; Você não pode consultar a ocupação de espaço de um banco de dados ou tabela através do SHOW TABLE STATUS. O sistema operacional pode entender o tamanho da pasta correspondente da biblioteca ou do arquivo correspondente da tabela, mas como a tabela BDB sempre precisa gerar um arquivo de log, e a ocupação real do disco deve incluir o arquivo de log, o tamanho de uma biblioteca ou tabela é sempre menor que o espaço real ocupado pelo sistema operacional.
|