[Banco de dados MySQL | Artigo 16] Mecanismo de armazenamento

Índice

 Prefácio:

 Diagrama da arquitetura do MySQL:

Introdução ao mecanismo de armazenamento:

1. Mecanismo de armazenamento InnoDB:

2. Mecanismo de armazenamento MyISAM:

3. Mecanismo de armazenamento de MEMÓRIA:

4. Mecanismo de armazenamento NDB Cluster:

5. Mecanismo de armazenamento ARCHIVE:

Sintaxe do mecanismo de armazenamento:

Bloqueios ACID e em nível de linha:

 Resumir:


 Prefácio:

Depois de estudar os 15 artigos anteriores, terminamos de aprender a sintaxe básica do SQL e dominamos aproximadamente a operação do banco de dados. Em seguida, conduziremos o aprendizado avançado do SQL. O que aprenderemos hoje é: o mecanismo de armazenamento do MySQL.

 Diagrama da arquitetura do MySQL:

A estrutura do MySQL inclui principalmente os seguintes aspectos:

1. Camada do Servidor (Camada do Servidor) : Fornece os principais serviços do MySQL, incluindo gerenciamento de conexão, análise de consulta, otimização e outras funções.

2. Mecanismo de armazenamento : fornece armazenamento de dados e serviços de acesso. O próprio MySQL suporta vários mecanismos de armazenamento, como InnoDB, MyISAM, etc., e cada mecanismo de armazenamento tem seus próprios recursos e funções exclusivos.

3. Camada de rede (Connection Layer): Fornece serviços de comunicação entre o MySQL e o cliente, suporta vários protocolos, como TCP/IP, HTTP, etc.

4. Interfaces de Programação de Aplicativos (Interfaces de Programação de Aplicativos, APIs) : Fornece uma variedade de interfaces de programação, incluindo C, C++, Python e outras interfaces, para facilitar a operação interativa de aplicativos e MySQL.

Toda a arquitetura do MySQL é composta principalmente por essas partes, entre as quais a camada do servidor e a camada do mecanismo de armazenamento são os principais componentes do MySQL, responsáveis ​​por fornecer serviços essenciais e serviços de armazenamento e acesso de dados, respectivamente. A camada de rede e a camada de interface de programação de aplicativos fornecem serviços relacionados para interoperar com clientes e aplicativos. Esses componentes trabalham juntos para formar uma estrutura de sistema poderosa e flexível do MySQL.

InnoDB é o mecanismo de armazenamento padrão usado após o MySQL 5.5.

Introdução ao mecanismo de armazenamento:

O mecanismo de armazenamento é a implementação de tecnologias como armazenamento de dados, criação de índices e atualização/consulta de dados. O mecanismo de armazenamento é baseado em tabela, não em biblioteca, portanto, o mecanismo de armazenamento também é chamado de estrutura de tabela.

O mecanismo de armazenamento no MySQL é o componente principal que lida com aspectos de armazenamento e recuperação de dados. O MySQL suporta muitos mecanismos de armazenamento diferentes, e esses mecanismos de armazenamento têm suas próprias vantagens exclusivas em alguns aspectos.

Os mecanismos comuns de armazenamento do MySQL incluem o seguinte:

1. Mecanismo de armazenamento InnoDB:

O mecanismo de armazenamento InnoDB é o mecanismo de armazenamento mais comumente usado no MySQL e também é o mecanismo de armazenamento padrão. Ele oferece suporte a transações ACID, possui recursos como bloqueio em nível de linha e restrições de chave estrangeira e é adequado para aplicativos transacionais e de alta simultaneidade. O InnoDB oferece suporte a backup e recuperação a quente de dados e fornece um mecanismo de cache eficiente.

2. Mecanismo de armazenamento MyISAM:

MyISAM não suporta transações e bloqueia toda a tabela para operações de atualização, mas funciona muito bem para inserções e consultas. Para aplicativos somente leitura ou aplicativos de thread único, o uso do MyISAM pode obter melhor desempenho . A tabela MyISAM é caracterizada por bloqueio de tabela e velocidade rápida, mas não suporta transações, nem suporta restrições como chaves estrangeiras.

3. Mecanismo de armazenamento de MEMÓRIA:

O mecanismo de armazenamento MEMORY armazena dados de tabela na memória e é adequado para alguns cenários que processam dados, como vendas e monitoramento ambiental. MEMORY é um mecanismo de armazenamento muito rápido, mas sua desvantagem é que quando o servidor fecha o processo ou trava, os dados da tabela são esvaziados . MEMORY também oferece suporte a índices Hash, o que melhora muito a eficiência da consulta.

4. Mecanismo de armazenamento NDB Cluster:

NDB Cluster pode dividir um banco de dados em vários nós, cada nó mantém um subconjunto de dados e trabalha em conjunto para oferecer suporte a operações completas de banco de dados. Esse mecanismo de armazenamento é usado em data centers de grande escala e alta disponibilidade .

5. Mecanismo de armazenamento ARCHIVE:

O mecanismo de armazenamento ARCHIVE é um mecanismo de armazenamento usado apenas para fins de arquivamento e é adequado para alguns cenários, como logs de dados e backups de captura instantânea. Ele visa fornecer um consumo de espaço em disco muito baixo e uma capacidade de compactação e descompactação de alto desempenho , não oferece suporte a operações de indexação, atualização e exclusão e é frequentemente usado para compactar arquivos após a gravação de dados. 

Diferentes mecanismos de armazenamento têm diferentes desempenhos, recursos, cenários de uso, etc. Ao usar o MySQL, os desenvolvedores precisam escolher o mecanismo de armazenamento apropriado de acordo com suas necessidades.

Sintaxe do mecanismo de armazenamento:

1. Consulte o mecanismo da tabela atual:

show create  table 表名;

resultado da operação:

 2. Especifique o mecanismo de armazenamento ao criar a tabela:

create table name(
    字段1 字段类型
    ....
    字段2 字段类型
) ENGINE = 引擎类型;

 Exemplo:

create table try(
    id int
) engine = MyISAM;

resultado da operação:

3. Consulte o tipo de mecanismo suportado pelo banco de dados atual:

show engines ;

resultado da operação:

Bloqueios ACID e em nível de linha:

ÁCIDO

     É uma abreviação que representa os princípios básicos do processamento de transações , incluindo os quatro aspectos a seguir:

  1. Atomicidade: Uma transação é considerada uma operação atômica, que trata todas as tarefas como um todo (se alguma das operações falhar, toda a transação será revertida), ou todas elas são concluídas, ou nenhuma delas é concluída.

  2. Consistência : Antes do início da transação e após o término da transação, o estado do banco de dados deve permanecer consistente, o que significa que as restrições de integridade do banco de dados não podem ser violadas durante a execução da transação.

  3. Isolamento: Isolamento significa que, quando o banco de dados executa várias transações, cada transação deve ser completamente independente e a ordem em que são executadas não deve afetar os resultados.

  4. Durabilidade : Persistência significa que após a conclusão de uma transação, seus resultados devem ser armazenados permanentemente no banco de dados e, mesmo que ocorra uma falha de hardware ou outra falha do sistema, os resultados da transação enviada não podem ser afetados.

Bloqueios em nível de linha:  

      Bloqueio de nível de linha (Bloqueio de nível de linha) é um mecanismo de bloqueio no sistema de gerenciamento de banco de dados (DBMS). Ao processar leitura e gravação simultâneas, cada linha de dados é bloqueada para garantir que os dados lidos e gravados ao mesmo tempo não entrem em conflito. Diferente dos bloqueios tradicionais em nível de tabela, os bloqueios em nível de linha podem processar várias transações simultaneamente enquanto bloqueiam apenas uma determinada linha, melhorando assim a eficiência do processamento de dados.

       O princípio de funcionamento do bloqueio em nível de linha é: antes de modificar/excluir uma linha de dados, adicione uma marca de bloqueio à linha e solte a marca de bloqueio de linha até que a transação seja concluída ou após a confirmação/reversão.

       As principais vantagens dos bloqueios em nível de linha incluem:

      1. Simultaneidade aprimorada: os bloqueios em nível de linha podem bloquear linhas individuais em vez da tabela inteira, o que significa que as operações de leitura e gravação podem ser implementadas com mais eficiência durante o acesso simultâneo.

      2. Conflitos de bloqueio reduzidos: o uso de bloqueios em nível de linha pode reduzir conflitos causados ​​por acesso simultâneo a bloqueios, evitar operações de serialização e melhorar a eficiência da execução.

     3. Oferece suporte a recursos de processamento de transação mais altos: ao otimizar o mecanismo de bloqueio, os bloqueios em nível de linha reduzem o tempo de espera de bloqueio e a frequência da concorrência de bloqueio, suportando assim recursos de processamento de transação mais altos.

     Deve-se observar que, quando bloqueios em nível de linha são usados, dois problemas precisam ser controlados: granularidade de bloqueio e tempo de bloqueio. Se a granularidade do bloqueio for muito fina, a quantidade de dados bloqueados pode ser muito grande, resultando em sobrecarga excessiva de concorrência de bloqueio; se o tempo de bloqueio for muito longo, o desempenho da leitura e gravação simultâneas pode ser afetado . Portanto, ao usar bloqueios em nível de linha, é necessário equilibrar os dois fatores de granularidade e tempo e fazer os ajustes apropriados de acordo com os requisitos reais do aplicativo.

 Resumir:

        O mecanismo de armazenamento é a implementação de tecnologias como armazenamento de dados, criação de índices e atualização/consulta de dados. Escolhemos diferentes mecanismos para processar os dados da tabela de acordo com diferentes necessidades, o que pode melhorar muito a eficiência.

Este é o fim do conteúdo de hoje, obrigado por ler.

Se meu conteúdo for útil para você, curta, comente e marque . A criação não é fácil, o apoio de todos é minha motivação para perseverar!

Acho que você gosta

Origin blog.csdn.net/fckbb/article/details/131137365
Recomendado
Clasificación