Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
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`.