Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> PHP /MySQL Programmering >> Content
Bewaart MySQL elke tabel in één afzonderlijk bestand?
Nee, MySQL slaat niet noodzakelijkerwijs elke tabel in één afzonderlijk bestand op. De manier waarop MySQL tabellen opslaat, is afhankelijk van de gebruikte opslagengine.

Hier volgt een overzicht van hoe verschillende opslagengines omgaan met tabelopslag:

1. InnoDB (Meest gebruikelijk - de standaard vanaf MySQL 5.5)

* `innodb_file_per_table` configuratie: Deze instelling bepaalt hoe InnoDB tabelgegevens en indexen opslaat.

* `innodb_file_per_table=ON` (Aanbevolen): Elke tabel heeft zijn eigen `.ibd`-bestand voor gegevens en indexen. Metagegevens (tabeldefinitie) worden nog steeds opgeslagen in het gedeelde `ibdata1`-bestand. Dit is de voorkeursinstelling omdat:

* Het maakt de bewerkingen 'DROP TABLE', 'TRUNCATE TABLE' en 'OPTIMIZE TABLE' sneller.

* Het zorgt voor eenvoudiger herstel van individuele tabellen.

* Het vermindert het risico op corruptie bij meerdere tabellen.

* Het maakt ruimte vrij wanneer een tabel wordt verwijderd (in tegenstelling tot de gedeelde tabelruimtebenadering).

* `innodb_file_per_table=OFF` (niet aanbevolen): Gegevens en indexen voor alle InnoDB-tabellen worden opgeslagen in een gedeelde tabelruimte (meestal `ibdata1`). Metagegevens (tabeldefinitie) worden nog steeds opgeslagen in het gedeelde `ibdata1`-bestand. Deze instelling wordt sterk afgeraden, tenzij u een zeer specifieke en dwingende reden heeft om deze te gebruiken. Het is moeilijker om de tabelruimte te beheren, herstellen en verkleinen.

* `.frm`-bestanden: InnoDB maakt voor elke tabel ook een `.frm`-bestand aan. Dit bestand bevat de metadata van de tabel (tabeldefinitie). Dit is een historisch artefact en `.frm`-bestanden worden minder belangrijk omdat metagegevens worden verplaatst naar de datadictionary die rechtstreeks door de server wordt beheerd.

2. MyISAM (oudere engine, nu minder gebruikelijk):

* MyISAM slaat elke tabel op in drie afzonderlijke bestanden:

* `.frm`:Tabeldefinitie (zoals InnoDB).

* `.MYD`:Gegevensbestand (bevat de gegevens van de tabel).

* `.MYI`:Indexbestand (bevat de indexen van de tabel).

3. Andere opslagengines:

* Andere opslagmotoren (bijv. Geheugen, Archief, CSV) hebben hun eigen opslagmechanismen. De 'Memory'-engine slaat bijvoorbeeld tabellen op in het geheugen, niet op schijf. De `CSV`-engine slaat gegevens op in CSV-bestanden.

Belangrijke overwegingen:

* Locatie van bestanden: De bestanden die aan een tabel zijn gekoppeld (bijvoorbeeld `.ibd`, `.frm`, `.MYD`, `.MYI`) worden doorgaans opgeslagen in een directory die overeenkomt met de databasenaam. De locatie van deze mappen wordt bepaald door de configuratievariabele `datadir` in uw MySQL-serverconfiguratie (meestal `my.cnf` of `my.ini`).

* Gedeelde tabelruimte (ibdata1): Als u `innodb_file_per_table=OFF` gebruikt met InnoDB, delen *alle* InnoDB-tabellen het `ibdata1`-bestand (en mogelijk andere `ibdata`-bestanden als dit te groot wordt). Dit kan leiden tot fragmentatie en het moeilijk maken om schijfruimte terug te winnen.

* Metagegevensopslag: Hoewel de primaire gegevens vaak in verschillende bestanden worden gescheiden (vooral met `innodb_file_per_table=ON`), worden de tabel *definities* (metagegevens) opgeslagen in een datadictionary dat wordt beheerd door de server. `.frm`-bestanden worden gebruikt voor oudere formaten en zijn nu minder kritisch.

Hoe `innodb_file_per_table` te controleren:

U kunt de huidige instelling van `innodb_file_per_table` controleren met behulp van de volgende SQL-query:

```sql

TOON VARIABELEN ZOALS 'innodb_file_per_table';

```

Samengevat:

Terwijl oudere opslagengines zoals MyISAM *do* tabelgegevens, indexen en definities in afzonderlijke bestanden opslaan, slaat InnoDB (de meest voorkomende engine) met `innodb_file_per_table=ON` gegevens en indexen op in één `.ibd`-bestand *per tabel* (plus het oudere `.frm`-bestand voor metagegevens). Met `innodb_file_per_table=OFF` worden alle InnoDB-tabelgegevens en indexen opgeslagen in het gedeelde `ibdata1`-bestand.

Previous: Next:
  PHP /MySQL Programmering
·Waarom wordt mijn computer Ope…
·Hoe Video Overlay toevoegen in…
·Hoe om te controleren Bestands…
·Hoe Bulk - Delete tabellen in …
·Hoe to Date Afmetingen Maak in…
·Hoe controleert de PHP Indien …
·Hoe maak je een FTP- verbindin…
·Hoe je MySQL Stoppen Met Ubunt…
·Hoe maak je een map Temp te cr…
  Related Articles
Welke rol speelt een tolk bij het progra…
Wat is de rol van een compiler bij compu…
Wat is het doel van een voorwaardelijke …
Wat is de analoge definitie in de inform…
Wat is redex en hoe verhoudt dit zich to…
Wat is een visuele programmeertaal en wa…
Wat is een type in programmeren en welke…
Wat is een heap in Java en hoe functione…
Wat is een computercompiler en hoe funct…
  Programmering Articles
·Hoe je woorden met een gehalte Apostroph…
·Hoe maak je een Substring Verwijder Van …
·De Eigenschappen van een collectie in VB…
·Hoe kan ik Java inschakelen op mijn werk…
·Hoe maak je een API Call 
·Hoe een Ontwerp van het Programma voor S…
·Hoe te Games behulp Python voor beginner…
·Verschil tussen hoog niveau en laag nive…
·Hoe maak je een hond in Java 
Copyright © Computer Kennis https://www.nldit.com