Mecanismo de armazenamento básico do MySQL (23)

1. Visualize o mecanismo de armazenamento

show engines;
# 或
show engines\G

2. Defina o mecanismo de armazenamento padrão do sistema

  • Veja o mecanismo de armazenamento padrão:
show variables like '%storage_engine%'; 
#或
SELECT @@default_storage_engine;
  • Modifique o mecanismo de armazenamento padrão

Se o mecanismo de armazenamento da tabela não for especificado explicitamente na instrução que cria a tabela, o InnoDBmecanismo de armazenamento da tabela será usado por padrão.

SET DEFAULT_STORAGE_ENGINE=MyISAM;

Ou modifique my.cnfo arquivo:

default-storage-engine=MyISAM 
# 重启服务 
systemctl restart mysqld.service

3. Defina o mecanismo de armazenamento da tabela

O mecanismo de armazenamento é responsável por extrair e gravar dados na tabela. Podemos fazer isso, 不同的表设置不同的存储引擎o que significa que diferentes tabelas podem ter diferentes estruturas físicas de armazenamento e diferentes métodos de extração e gravação.

3.1 Especifique o mecanismo de armazenamento ao criar a tabela
CREATE TABLE 表名(
    建表语句; 
) ENGINE = 存储引擎名称;
3.2 Modifique o mecanismo de armazenamento da tabela
ALTER TABLE 表名 ENGINE = 存储引擎名称;

4.Introdução do motor

4.1 Mecanismo InnoDB : mecanismo de armazenamento de transações com função de suporte de chave estrangeira
  • MySQL inclui o mecanismo de armazenamento InnoDB a partir de 3.23.34a. 大于等于5.5之后,默认采用InnoDB引擎.
  • InnoDB é MySQL 默认事务型引擎e foi projetado para lidar com grandes quantidades de transações de curta duração. A confirmação completa e a reversão das transações podem ser garantidas.
  • Além de adicionar e consultar, também são necessárias operações de atualização e exclusão, portanto, o mecanismo de armazenamento InnoDB deve ser preferido.
  • A menos que haja um motivo muito especial para usar outro mecanismo de armazenamento, o mecanismo InnoDB deve ter prioridade.
  • Estrutura do arquivo de dados:
    • A tabela name.frm armazena a estrutura da tabela (no MySQL8.0, mesclada na tabela name.ibd)
    • Nome da tabela.ibd armazena dados e índices
  • InnoDB é 为处理巨大数据量的最大性能设计.
    • Nas versões anteriores, os dados do dicionário eram armazenados em arquivos de metadados, tabelas não transacionais, etc. Esses arquivos de metadados foram excluídos. Por exemplo: .frm, .par, .trn, .isl, .db.optetc. não existem mais no MySQL8.0.
  • Comparado com o mecanismo de armazenamento do MyISAM, InnoDB写的处理效率差一些ocupará mais espaço em disco para salvar dados e índices.
  • MyISAM armazena em cache apenas o índice, não os dados reais; o InnoDB não apenas armazena em cache o índice, mas também armazena em cache os dados reais, 对内存要求较高e o tamanho da memória tem um impacto decisivo no desempenho.
4.2 Mecanismo MyISAM : o principal mecanismo de armazenamento sem transações
  • MyISAM oferece um grande número de recursos, incluindo indexação de texto completo, compactação, funções espaciais (GIS), etc., mas MyISAM 不支持事务、行级锁、外键tem uma falha indiscutível 崩溃后无法安全恢复.
  • 5.5之前默认的存储引擎
  • A vantagem é o acesso 速度快, não há exigência de integridade de transações ou aplicações baseadas em SELECT e INSERT
  • Há armazenamento constante adicional para estatísticas. Portanto, a eficiência da consulta de count(*) é muito alta
  • Estrutura do arquivo de dados:
    • Nome da tabela.estrutura da tabela de armazenamento frm
    • Nome da tabela.Dados de armazenamento MYD (MYData)
    • Nome da tabela.Índice de armazenamento MYI (MYIndex)
  • Cenários de aplicativos: aplicativos somente leitura ou negócios baseados em leitura
4.3 Mecanismo de arquivo: usado para arquivamento de dados
4.4 Motor Blackhole : as operações de gravação são descartadas e as operações de leitura retornarão conteúdo vazio
4.5 Mecanismo CSV: Ao armazenar dados, separe cada item de dados com vírgulas
4.6 Mecanismo de memória: tabelas colocadas na memória
4.7 Mecanismo federado : acesse tabelas remotas
4.8 Mecanismo de mesclagem: gerencia uma coleção de tabelas composta por múltiplas tabelas MyISAM
4.9 Mecanismo NDB: Mecanismo de armazenamento dedicado ao cluster MySQL

5.MyISAM e InnoDB

Item comparativo MeuISAM InnoDB
chave estrangeira não suporta apoiar
romances não suporta apoiar
Bloqueio de tabela de linhas Bloqueio de tabela, mesmo que um registro seja operado, toda a tabela será bloqueada, o que não é adequado para operações altamente simultâneas. O bloqueio de linha bloqueia apenas uma determinada linha durante a operação e não afeta outras linhas. É adequado para operações de alta simultaneidade.
esconderijo Apenas o índice é armazenado em cache, não os dados reais Não apenas armazenar em cache o índice, mas também armazenar em cache os dados reais requer muita memória, e o tamanho da memória tem um impacto decisivo no desempenho.
Use sua própria tabela de sistema S N
ponto de foco Desempenho: economize recursos, consuma menos, negócios simples Transações: gravações simultâneas, transações, recursos maiores
Instalação padrão S S
Usado por padrão N S

Acho que você gosta

Origin blog.csdn.net/zhufei463738313/article/details/130580790
Recomendado
Clasificación