Programação  
 
Rede de conhecimento computador >> Programação >> Programação PHP /MySQL >> Content
O MySQL armazena cada tabela em um arquivo separado?
Não, o MySQL não armazena necessariamente cada tabela em um arquivo separado. A maneira como o MySQL armazena as tabelas depende do mecanismo de armazenamento usado.

Aqui está uma quebra de como os diferentes motores de armazenamento lidam com o armazenamento de tabela:

1. Innodb (mais comum - o padrão a partir do MySQL 5.5)

* `innodb_file_per_table` Configuração: Essa configuração determina como o InnoDB armazena dados e índices de tabela.
* `innodb_file_per_table =on` (recomendado): Cada tabela possui seu próprio arquivo `.ibd` para dados e índices. Os metadados (definição da tabela) ainda estão armazenados no arquivo `ibdata1` compartilhado. Esta é a configuração preferida porque:
* Faz operações de tabela `soltada ',` truncate' e `otimizar a tabela 'mais rapidamente.
* Permite uma recuperação mais fácil de tabelas individuais.
* Reduz o risco de corrupção que afeta várias tabelas.
* Recupera o espaço quando uma tabela é descartada (ao contrário da abordagem de espaço de tabela compartilhada).
* `innodb_file_per_table =off` (não recomendado): Dados e índices para todas as tabelas Innodb são armazenados em um espaço de tabela compartilhado (normalmente `ibdata1`). Os metadados (definição da tabela) ainda estão armazenados no arquivo `ibdata1` compartilhado. Essa configuração é fortemente desencorajada, a menos que você tenha uma razão muito específica e convincente para usá -la. É mais difícil gerenciar, recuperar e encolher o espaço de tabela.

* `.frm` arquivos: O Innodb também cria um arquivo `.frm` para cada tabela. Este arquivo contém os metadados da tabela (definição da tabela). Este é um artefato histórico e os arquivos `.frm` estão se tornando menos importantes, pois os metadados estão sendo movidos para o dicionário de dados gerenciados diretamente pelo servidor.

2. Myisam (motor mais antigo, menos comum agora):

* Myisam armazena cada tabela em três arquivos separados:
* `.frm`:definição de tabela (como innoDB).
* `.Myd`:arquivo de dados (contém os dados da tabela).
* `.Myi`:arquivo de índice (contém os índices da tabela).

3. Outros mecanismos de armazenamento:

* Outros mecanismos de armazenamento (por exemplo, memória, arquivo, CSV) têm seus próprios mecanismos de armazenamento. Por exemplo, o mecanismo `Memory` armazena tabelas na memória, não no disco. Os `csv` motor armazenam dados em arquivos CSV.

Considerações importantes:

* Localização dos arquivos: Os arquivos associados a uma tabela (por exemplo, `.ibd`,` .frm`, `.myd`,` .myi`) são normalmente armazenados em um diretório que corresponde ao nome do banco de dados. A localização desses diretórios é determinada pela variável de configuração `datadir` na configuração do MySQL Server (geralmente` my.cnf` ou `my.ini`).

* Espaço de tabela compartilhada (ibdata1): Se você estiver usando `innodb_file_per_table =off` com innodb, * todas as tabelas innodb compartilham o arquivo` ibdata1` (e possivelmente outros arquivos `ibdata` se ele crescer muito grande). Isso pode levar à fragmentação e dificultar a recuperação do espaço em disco.

* Armazenamento de metadados: Embora os dados primários sejam frequentemente separados em arquivos diferentes (especialmente com `innodb_file_per_table =on`), as definições da tabela * * (metadados) são armazenadas em um dicionário de dados gerenciado pelo servidor. Os arquivos `.frm` são usados ​​para formatos mais antigos e são menos críticos agora.

Como verificar `innodb_file_per_table`:

Você pode verificar a configuração atual de `innodb_file_per_table` usando a seguinte consulta SQL:

`` `SQL
Mostrar variáveis ​​como 'innodb_file_per_table';
`` `

em resumo:

Enquanto mecanismos de armazenamento mais antigos, como o myisam * do * armazenam dados, índices e definições em arquivos separados, innodb (o mecanismo mais comum) com `innodb_file_per_table =em` armazena dados e índices em um` .ibd` arquivo * por tabela * (mais o arquivo `frm` .frm 'para metadata). Usando `innodb_file_per_table =off` armazena todos os dados da tabela e índices innodb no arquivo` ibdata1` compartilhado.

Anterior :

Próximo :
  Os artigos relacionados
·PHP Cordas Comparação 
·Problemas importar grandes arquivo CSV para MySQL 
·Você precisa instalar o apache conectar o visual bási…
·Como escrever um relatório de RDL 
·Como remover Vírgulas em PHP 
·Como usar o cifrão em uma String em PHP 
·Procedimentos PHP 
·Como Tira rasga com PHP 
·MySQL junta Select Tutorial Contagem 
·Como usar um cliente de serviços Web 
  Artigos em destaque
·Como escrever um script para Logoff 
·Níveis de isolamento SSIS 
·Como carregar uma consulta no MySQL 
·A Passo a Passo Tutorial Para Visual Basic 
·Como fazer uma pessoa Walk in Game Maker 7 
·O que é um procedimento no código e como ele usou lin…
·Como acessar uma matriz associativa em PHP 
·Como salvar uma matriz em Python 
·Como alterar o nome do campo em uma tabela MySQL 
·As desvantagens de Normalização 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados