O que é InnoDB e MyISAM em MySQL?

o que é InnoDB e MyISAM em MySQL?

Author: naXa, 2010-09-29

6 answers

InnoDB e MYISAM, são motores de armazenamento para MySQL.

Estes dois diferem na sua implementação de bloqueio: {[[0]} bloqueia a linha em particular na tabela, e MyISAM bloqueia toda a tabela MySQL.

Pode indicar o tipo dando MYISAM ou InnoDB ao criar uma tabela em DB.

 74
Author: Siva, 2017-10-10 00:43:46

Olha para

InnoDB e MyISAM

O InnoDB é um motor de armazenamento para o MySQL, incluído como padrão em todas as correntes binários distribuídos por MySQL AB. Seu melhoria principal sobre outro armazenamento motores disponíveis para utilização com MySQL é um suporte de transacção compatível com o ácido

O MyISAM é o motor de armazenamento por omissão para a base de dados relacional MySQL versões do sistema de gestão antes de 5.5 1. É baseado no mais velho ISAM code but has many useful extensions. A principal deficiência de MyISAM é a ausência de apoio às transacções. Versões do MySQL 5.5 e maior têm comutada para o motor InnoDB assegurar a integridade referencial restrições e concorrência mais elevada.

 33
Author: Adriaan Stander, 2010-09-29 04:41:03
São motores de armazenamento.

Http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html

MyISAM: o motor padrão de armazenamento MySQL e o que é mais usado na Web, armazenamento de dados, e outros ambientes de Aplicação. O MyISAM é suportado em todas as configurações do MySQL, e é o motor de armazenamento por omissão, a menos que tenha configurado o MySQL para usar um diferente por omissão.

InnoDB: um motor de armazenamento seguro para transacções (em conformidade com o ácido) para o MySQL que tem commit, rollback e capacidade de recuperação de crash para proteger os dados do Usuário. O bloqueio de nível de linha InnoDB (sem escalada para bloqueios de granularidade mais grosseiros) e o estilo Oracle consistent nonlocking aumentam a concorrência multi-usuário e o desempenho. A InnoDB armazena os dados do usuário em índices agrupados para reduzir o I / O para consultas comuns baseadas em chaves primárias. Para manter a integridade dos dados, o InnoDB também suporta restrições de integridade referencial-referencial estrangeiras.

 17
Author: mluebke, 2010-09-29 04:40:43

Eu queria acrescentar que ter a capacidade de especificar um motor de armazenamento específico por tabela é uma das principais forças do MySQL (além de fácil de usar e bom desempenho sem ajustes). Para todas as operações onde as transações são necessárias, basta ficar com InnoDB. No entanto, MyISAM pode realmente acelerar as coisas quando as transações não são necessárias em certas situações - e requer menos espaço em disco e RAM em comparação com InnoDB.

Dito isto, o InnoDB está a melhorar. tempo:

InnoDB 1.1 melhorias de desempenho e escalabilidade

 5
Author: Damir Bulic, 2010-11-02 11:41:27

O MyISAM não segue Ácido ao contrário do InnoDB que segue as transacções para manter a integridade dos dados.

O MyISAM suporta inserções simultâneas: se uma tabela não tiver blocos livres em no meio do arquivo de dados, você pode inserir novas linhas nele no ao mesmo tempo que outros tópicos estão lendo a partir da tabela. MySqlDoc

É por isso que o MyISAM é mais rápido e ocupa menos espaço. Por exemplo, o motor de armazenamento MyISAM MySQL não suporta transações. restrições de MySQL MYISAM {[6] } existe um bocado chamado concurrent-insert Por padrão,a variável é definida para 1 e as inserções simultâneas são tratadas como descrito. Se for definido como 0, as inserções simultâneas estão desactivadas. Se for definido como 2, inserções simultâneas no final da tabela são permitidas mesmo para tabelas que tenham linhas apagadas. Pode ser executada uma instrução de inserção para adicionar linhas ao fim da tabela com a opção seleccionar ao mesmo tempo se não existirem buracos/linhas apagadas em meio da tabela (no momento da inserção simultânea).

O nível de isolamento padrão og mysql InnoDB é "legível repetível". Para MyISAM, não há transação. O InnoDB usa o bloqueio de nível de linha enquanto o MyISAM só pode usar o bloqueio de nível de mesa. é por isso que o InnoDB tem revovery de crash é melhor do que o MyISAM. É preciso adquirir manualmente o bloqueio do nível da tabela em MyISAM se se quiser evitar os efeitos da concorrência.

 4
Author: hi.nitish, 2017-10-24 13:40:57

O InnoDB é o padrão, não o myISAM. https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html "InnoDB é o motor padrão de armazenamento MySQL. A menos que tenha configurado um motor de armazenamento predefinido diferente, a emissão de uma declaração de tabela criar sem um motor= cláusula cria uma tabela InnoDB "

 1
Author: adwairi, 2017-06-12 22:32:42