A táblák típusa és szerkezete a mysql-ben

A MySQL adatbázis több különböző táblázatot támogat, amelyek mindegyikének sajátos sajátosságai és korlátai vannak.

Meg fogom kezdeni a leírást a MyISAM táblák "natív" MySQL adatbázis-típusától. Ha nem ad meg táblázatot a létrehozás táblázatban, ez a típus lesz hozzárendelve.
Minden MyISAM lemezen tárolt három fájlokat (a mysql / data könyvtárban a könyvtár), a fájl nevét egybeesik a tábla nevét, és a kiterjesztés lehet az alábbi értékeket:
.frm - táblázat szerkezet, ez a fájl tartalmazza az oszlopok és indexek nevét és típusát;
.MYD - ez a fájl táblaadatokat tartalmaz;
.MYI - ez a fájl asztali indexeket tartalmaz.

Hozzon létre egy MyISAM táblát egy explicit típussal:

Az ENGINE kulcsszó használata előnyösebb, de csak a MySQL 4.0.18 verzióval lehetséges.

A MySQL-ben van egyfajta MERGE tábla. lehetővé teszi, hogy több MyISAM táblát egyesítsünk. Ezt a típust főként a MyISAM táblák hangerő-korlátozásának eltávolítására használják. abban az esetben, ha az operációs rendszer vagy a fájlrendszer nem teszi lehetővé a meghatározott méretű fájlok létrehozását (például 4gb a FAT32-hez stb.). A MyISAM táblákat egy MERGE táblába egyesítik. azonos szerkezettel kell rendelkeznie, azaz ugyanazokat az oszlopokat, mutatókat és sorrendjüket.
A létrehozott MERGE típusú táblához a .rfm kiterjesztésű és a .MRG kiterjesztéssel rendelkező fájlok fájljai lesznek megjelenítve. Az .MRG fájlok olyan indexfájlok listáját tartalmazzák, amelyeket egyetlen fájlként kell kezelni.
A kombinált táblázat SELECT, DELETE és UPDATE parancsát használhatja. Ha megpróbálja törölni a MERGE táblát a DROP TABLE parancs segítségével, a MERGE tábla megsemmisül, az eredeti MyISAM táblák nem lesznek hatással.

Példa egy táblázat létrehozására MERGE:

A summ_table táblázatból származó minta eredménye így néz ki:

A közös summ_table-ben az id mező már nem egyedi!
(A MERGE táblák nem tartalmazhatnak egyedi kulcsokat.)

A példa azt mutatja, hogy a használó UNION paraméterkészlet táblázat az asszociációs, és segítségével a paraméter készlet paraméter INSERT_METHOD is hozzá rekordokat MyISAM táblázat (mint ebben az esetben az érték kerül átadásra az egyik három állandók).

ELSŐ - Új bejegyzés beillesztése a MERGE táblába. A bejegyzés az UNION paraméterben szereplő listából az első táblázatba kerül.
UTOLSÓ - A rekord a lista utolsó táblázatába kerül.
NEM - Ez az érték lényegében azonos a paraméter hiányával, és azt jelenti, hogy a MERGE tábla beillesztése nem lehetséges, az INSERT utasítás pedig hibát eredményez.

A következő típusú MEMORY (HEAP) táblák RAM-ban kerülnek tárolásra, így minden lekérdezés nagyon gyorsan megy végbe. Az ilyen táblázatok hátránya az, hogy egy szerverhiba esetén teljes adatvesztés keletkezik. E tekintetben ezek a táblázatok főként ideiglenes adatokat tárolnak, amelyek egyszerűen újból visszaállíthatók.
A HEAP a MEMORY szinonimája. Azonban előnyösebb a MEMORY használata - ami később történik.
Amikor MEMORY típusú táblát hoz létre. Egy fájlt hoz létre a frm kiterjesztéssel, amely meghatározza a táblázat szerkezetét. Amikor a kiszolgáló leáll, vagy újraindul, a táblázat szerkezete megmarad, de a táblázatban szereplő összes információ elvész, mivel csak a RAM-ban tárolódik. A kiszolgáló minden egyes újraindításával nem kell újból létrehoznia a táblát, szerkezetének megmaradása.
A MEMORY típusú táblák számos korlátozással rendelkeznek:
1. Az indexeket csak a "=" és a "<=>", más operátorokkal, például"> "vagy"<", индексирование столбцов не имеет смысла.
2. A MERGE táblákhoz hasonlóan csak nem egyedi indexeket lehet használni.
3. A TEXT és BLOB típusok oszlopai nem megengedettek.
4. A MySQL 4.1 előtt ez a táblázat nem támogatja az AUTO_INCREMENT szolgáltatást.

Példa a MEMORY típusú táblázatok létrehozására:

A Típus PÉLDA csonk, ilyen típusú táblát hozhat létre, de nem tud adatokat szerezni vagy átvinni. Az ilyen típusú táblák készítéséhez, mint a MEMORY táblákhoz, csak egy frm fájlt hoz létre, ez határozza meg a táblázat szerkezetét.
A példa típusát a kényelem érdekében vezették be, és bemutatja, hogyan hozhat létre saját táblákat. Személyes véleményem szerint - a leginkább megkérdőjelezhető közüzemi típus. )
Példa egy táblázat létrehozására és az adatok módosítására:

A BDB táblákat a BerkeleyDB tranzakciós processzor biztosítja, amelyet a Sleepycat fejlesztett ki. Ilyen típusú táblák létrehozásakor két fájl hozható létre. Az egyik a frm kiterjesztéssel és tárolja a táblázat szerkezetét, a másik pedig a db kiterjesztéssel tárolja az adatokat és az indexeket.

Példa egy BDB táblázat létrehozására:

Az InnoDB táblázat típusát az Innobase Oy fejlesztette ki. Az ilyen típusú táblázatok nagy teljesítményt és stabil adattárolást biztosítanak akár 1 TB kapacitású táblázatokban, valamint akár 800 betét / frissítés másodpercenként is.

InnoDB típusú jellemzők:
1. Minden táblát egyetlen táblaterületen tárolnak, ezért a táblázatoknak egyedinek kell lenniük.
2. Az adatok tárolása egyetlen táblaterületen lehetővé teszi a táblázatok összegének korlátozását. A táblázatos fájl több részre osztható, és több lemezen vagy akár házigazdákon oszlik el.
3. A táblák támogatják az automatikus katasztrófa utáni helyreállítást.
4. A tranzakciók támogatottak.
5. Ez a tábla a MySQL-ben az egyetlen, amely támogatja a lépcsőzetes törlést és az idegen kulcsokat.
6. Blokkolás az egyes rekordok szintjén.
7. Van egy kiterjesztett támogatás a kódoláshoz.

Példa egy InnoDB táblázat létrehozására:


„Egzotikus típusú táblák” -, hogy az ilyen típusú I azok, amelyekben soha nem használta, és én, kicsit tanult - de ennek ellenére ott vannak, és érdemes megemlíteni őket.

NDB klaszter
Az NDB klasztertáblák típusa a MySQL klaszterek megszervezésére szolgál, abban az esetben, ha a táblákat több, hálózathoz csatlakoztatott számítógép között osztják szét.

ARCHÍVUM
Az ARCHIVE típus úgy van kialakítva, hogy nagy mennyiségű adatot tároljon tömörített formátumban. Az ilyen táblák létrehozásakor létrejön egy fájl, amely egybeesik az asztalnévvel és a frm kiterjesztéssel, amelyben a táblázat struktúrája tárolódik. Ezenkívül két fájlt hoz létre az ARZ és ARM kiterjesztésekkel, amelyekben az adatok és a metaadatok tárolódnak. Ezenkívül az asztal optimalizálásakor megjelenhet egy ARN kiterjesztéssel rendelkező fájl is.
Az ARCHIVE táblák csak két SQL utasítást támogatnak: INSERT és SELECT. A SELECT utasítás a teljes asztali lapolvasási módszerrel történik.

FEDERATED
A FEDERATED típus lehetővé teszi a hálózaton lévő más számítógépeken lévő távoli táblákon tárolt adatok tárolását. Táblázat létrehozásakor csak a frm kiterjesztéssel rendelkező szerkezeti fájl kerül létrehozásra, mivel az adatokat egy távoli gépen tárolják.
Egy FEDERATED tábla létrehozásához elõször létre kell hoznia a táblát a távoli gépen, majd a gyártó gépen, jelezve a távoli gépet.

Példa egy táblázat létrehozására FEDERATED:

Valószínűleg minden.

Kapcsolódó cikkek