324
PHP i MySQL dla każdego
Tabela 11.2. Typy tabel w MySQL | |
Nazwa typu |
Opis |
My ISAM |
Domyślny typ tabel. Szybki, przechowujący dane na dysku. Nie oferuje wsparcia dla transakcji. Obsługuje jednak takie możliwości, jak przeszukiwanie pełnotekstowe j (ang .fuli text search) czy spakowane indeksy (ang. packed indexes). |
InnoDB |
Typ obsługujący transakcje (ang. transactions) oraz blokowanie wierszy (ang. row 1 locking). Dane przechowywane są na dysku. |
MEMORY |
Wyjątkowo szybki, ze względu na przechowywanie tabel w pamięci operacyjnej. Jedynie struktura tabeli zapisywana jest na dysku. Dane są tracone po zakończeniu pracy serwera, nie obsługuje również transakcji. W wersjach poniżej 4.1 typ znany I jako HEAP, począwszy od wersji 4.1 słowo HEAP jest synonimem dla MEMORY. |
MERGE |
Typ specjalny umożliwiający tworzenie kolekcji identycznych tabel typu My ISAM, j dostępny począwszy od wersji 3.23.25. |
NDB |
Typ klastrowy umożliwiający obsługę tabel, które są fizycznie rozmieszczone na różnych komputerach. Dostępny od wersji 4.1.2. |
BDB |
Tabele obsługujące transakcje według standardu Berkeley DB. Dane przechowywane są na dysku. Typ dostępny począwszy od wersji 3.23.34a. |
CSV |
Wprowadzony w wersji 4.1.4 typ przechowujący dane w plikach tekstowych, w których poszczególne wartości oddzielane są od siebie znakami przecinka. |
FEDERATED |
Wprowadzony w wersji 5.0.3 typ specjalny obsługujący tabele znajdujące się w bazach innych niż lokalna (ang. remote databaseś). |
ARCHIVE |
Wprowadzony w wersji 4.1.3 typ służący do przechowywania dużych ilości danych. Dane są kompresowana podczas wstawiania. Nie ma możliwości przechowywania indeksów, Dopuszczalnymi operacjami są jedynie INSERT i SELECT. |
EXAMPLE |
Wprowadzony w wersji 4.1.3 typ specjalny przeznaczony dla programistów. Jedynym jego celem jest ilustracja, w jaki sposób można tworzyć własne procedury obsługi tabel. Nie jest wykorzystywany w normalnej pracy serwera. |
ISAM |
Starsza wersja typu MylSAM. Wersja przestarzała, usunięta w wersji 5.0. |
lub
TYPE = 'typ'
Zalecana jest pierwsza konstrukcja, jest ona jednak dostępna dopiero od wersji 4.0.18. W przypadku wersji wcześniejszych należy stosować drugą konstrukcję, dostępną począwszy od wersji 3.23.0. Jeśli zatem chcemy, aby tabela miała np. typ InnoDB, dla wersji 4.0.18 i wyższych należy zastosować instrukcję:
CREATE TABLE nazwa_tabeli{ definicja kolumn ) ENGINE - 'InnoDB'
Natomiast wersji od 3.23.0 do 4.0.18 należy zastosować instrukcję:
CREATE TABLE nazwaJabelU definicja kolumn ) TYPE = 'InnoDB'