Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ukladá MySQL každú tabuľku v jednom samostatnom súbore?

Nie, MySQL nemusí nevyhnutne ukladať každú tabuľku do jedného samostatného súboru. Spôsob, akým MySQL ukladá tabuľky, závisí od použitého úložného motora.

Tu je rozdelenie toho, ako rôzne úložné motory zvládajú úložisko tabuľky:

1. Innodb (najbežnejšie - predvolená hodnota od MySQL 5.5)

* `innodb_file_per_table` konfigurácia: Toto nastavenie určuje, ako InDB ukladá údaje a indexy tabuľky.

* `innodb_file_per_table =on` (odporúčané): Každá tabuľka má svoj vlastný súbor `.ibd` pre údaje a indexy. Metadáta (definícia tabuľky) je stále uložená v zdieľanom súbore `ibdata1`. Toto je preferované nastavenie, pretože:

* Vytvára `Drop Table`,` TRUNCATE TABLE` a `Optimalizovať stolové operácie rýchlejšie.

* Umožňuje ľahšie obnovenie jednotlivých tabuliek.

* Znižuje riziko korupcie ovplyvňujúcej viac tabuliek.

* Regeneruje priestor, keď je tabuľka vynechaná (na rozdiel od zdieľaného prístupu do tabuľkového priestoru).

* `innodb_file_per_table =off` (neodporúča sa): Dáta a indexy pre všetky tabuľky InNODB sa ukladajú do zdieľaného tabuľkového priestoru (zvyčajne `ibdata1`). Metadáta (definícia tabuľky) je stále uložená v zdieľanom súbore `ibdata1`. Toto nastavenie sa dôrazne odrádza, pokiaľ nemáte veľmi konkrétny a presvedčivý dôvod na jeho použitie. Je ťažšie spravovať, zotaviť sa a zmenšiť tabuľkový priestor.

* `.frm` súbory: Innodb tiež vytvára súbor `.frm` pre každú tabuľku. Tento súbor obsahuje metadáta tabuľky (definícia tabuľky). Toto je historický artefakt a „.frm“ sú stávky menej dôležité, pretože metadáta sa presúvajú do dátového slovníka spravovaného priamo serverom.

2. Myisam (starší motor, menej bežné):

* Myisam uloží každú tabuľku do troch samostatných súborov:

* `.frm`:Definícia tabuľky (ako InnoDB).

* `.Myd`:Data File (obsahuje údaje tabuľky).

* `.Myi`:indexový súbor (obsahuje indexy tabuľky).

3. Ostatné úložné motory:

* Ostatné úložné motory (napr. Pamäť, archív, CSV) majú svoje vlastné úložné mechanizmy. Napríklad motor „Pamäť“ ukladá tabuľky v pamäti, nie na disku. Engine `CSV` ukladá údaje do súborov CSV.

Dôležité úvahy:

* Umiestnenie súborov: Súbory spojené s tabuľkou (napr. `.Ibd`,` .frm`, `.myd`,` .myi`) sa zvyčajne ukladajú do adresára, ktorý zodpovedá názvu databázy. Poloha týchto adresárov je určená konfiguračnou premennou „Datadir` v konfigurácii servera MySQL (zvyčajne` my.cnf` alebo `my.ini`).

* zdieľaný tabuľkový priestor (ibdata1): Ak používate `innodb_file_per_table =off` s inDB, * všetky * inodb tabuľky zdieľajú súbor` ibdata1` (a možno aj iné súbory `ibdata`, ak rastie príliš veľké). To môže viesť k fragmentácii a sťažovať regeneráciu priestoru na disku.

* Skladovanie metadát: Aj keď sú primárne údaje často rozdelené do rôznych súborov (najmä s `innodb_file_per_table =ON`), definície * (metadáta) sú uložené v dátovom slovníku spravovanom serverom. `.frm` súbory sa používajú pre staršie formáty a sú teraz menej kritické.

Ako skontrolovať `innodb_file_per_table`:

Môžete skontrolovať aktuálne nastavenie `innodb_file_per_table` pomocou nasledujúceho dotazu SQL:

`` sql

Zobraziť premenné ako 'innodb_file_per_table';

`` `

v súhrne:

Zatiaľ čo staršie úložné motory, ako je MyISAM * do * ukladajte údaje, indexy a definície v samostatných súboroch, InnodB (najbežnejší motor) s `innodb_file_per_table =On 'uloží dáta a indexy v jednom` .ibd` súboru * na tabuľku * (plus starší `.frm` pre metadata). Pomocou `inDB_File_per_table =OFF` ukladá všetky údaje a indexy tabuľky InnodB do zdieľaného súboru` ibdata1`.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené