MySQL, który wybrać między Innodb i Myisam

Spisie treści

Silnik magazynu jest odpowiedzialny za przechowywanie, obsługę i pobieranie informacji z tabeli. Najbardziej znane silniki to MyISAM i InnoDB. Wybór jednego lub drugiego zależy w dużej mierze od scenariusza, w którym zostanie zastosowany.
Wybór ma na celu osiągnięcie najlepszego stosunku jakości zgodnie z naszą aplikacją. Jeśli potrzebujemy transakcji, kluczy obcych i zamków, będziemy musieli wybrać InnoDB. Wręcz przeciwnie, wybierzemy MyISAM w tych przypadkach, w których przeważają zapytania SELECT do bazy danych.
InnoDB zapewnia MySQL z transakcyjnym silnikiem pamięci masowej (zgodnym z ACID) z możliwościami zatwierdzania, wycofywania i odzyskiwania po awarii. InnoDB wykonuje blokady na poziomie wiersza, a także zapewnia spójne funkcje odczytu w stylu Oracle bez blokowania instrukcji SELECT. Te funkcje zwiększają wydajność i możliwość zarządzania wieloma równoczesnymi użytkownikami. Blokada skalowana nie jest wymagana w InnoDB, ponieważ blokady na poziomie wiersza zajmują bardzo mało miejsca. InnoDB obsługuje również ograniczenia KLUCZA OBCEGO. W zapytaniach SQL, nawet w ramach tego samego zapytania, tabele typu InnoDB można dowolnie dołączać do tabel innych typów.
MyISAM jest domyślnym silnikiem. Aby utworzyć tabelę InnoDB, należy określić opcję ENGINE = InnoDB lub TYPE = InnoDB w instrukcji SQL tworzenia tabeli:
klienci CREATE TABLE (a INT, b CHAR (20), INDEX (a)) ENGINE = InnoDB; klienci CREATE TABLE (a INT, b CHAR (20), INDEX (a)) TYPE = InnoDB;

Zalety korzystania z InnoDB
Obsługa transakcji
Blokowanie rekordów
Pozwala nam to mieć cechy ACID (atomowość, spójność, izolacja i trwałość: atomowość, spójność, izolacja i trwałość w języku hiszpańskim), gwarantujące integralność naszych tablic.
Jest prawdopodobne, że jeśli nasza aplikacja intensywnie korzysta z INSERT i UPDATE, zauważymy wzrost wydajności w porównaniu do MyISAM.
Zalety korzystania z MyISAM
Ogólnie szybsze odzyskiwanie danych.
Zalecane dla aplikacji, które dominują w instrukcjach SELECT przed INSERT/UPDATE.
Brak cech atomowości, ponieważ nie trzeba przeprowadzać kontroli integralności referencyjnej ani blokować tabel w celu wykonania operacji, prowadzi nas, podobnie jak w poprzednich punktach, do większej szybkości.
Silnik magazynu (storage-engine) jest odpowiedzialny za przechowywanie, obsługę i pobieranie informacji z tabeli. Najbardziej znanymi silnikami są MyISAM i InnoDB. Wybór jednego lub drugiego zależy w dużej mierze od scenariusza, w którym zostanie zastosowany, ale arsys.es chce pomóc nam lepiej zrozumieć te dobrze znane silniki pamięci masowej.
Wybór ma na celu osiągnięcie najlepszego stosunku jakości zgodnie z naszą aplikacją. Jeśli potrzebujemy transakcji, kluczy obcych i zamków, będziemy musieli wybrać InnoDB. Wręcz przeciwnie, wybierzemy MyISAM w tych przypadkach, w których przeważają zapytania SELECT do bazy danych.
InnoDB zapewnia MySQL z transakcyjnym silnikiem pamięci masowej (zgodnym z ACID) z możliwościami zatwierdzania, wycofywania i odzyskiwania po awarii. InnoDB wykonuje blokady na poziomie wiersza, a także zapewnia spójne funkcje odczytu w stylu Oracle bez blokowania instrukcji SELECT. Te funkcje zwiększają wydajność i możliwość zarządzania wieloma równoczesnymi użytkownikami. Blokada skalowana nie jest wymagana w InnoDB, ponieważ blokady na poziomie wiersza zajmują bardzo mało miejsca. InnoDB obsługuje również ograniczenia KLUCZA OBCEGO. W zapytaniach SQL, nawet w ramach tego samego zapytania, tabele typu InnoDB można dowolnie dołączać do tabel innych typów.
MyISAM jest domyślnym silnikiem. Aby utworzyć tabelę InnoDB, w instrukcji SQL tworzenia tabeli należy określić opcję ENGINE = InnoDB lub TYPE = InnoDB:
Klienci CREATE TABLE (a INT, b CHAR (20), INDEX (a)) ENGINE = InnoDB; Klienci CREATE TABLE (a INT, b CHAR (20), INDEX (a)) TYPE = InnoDB;

Zalety korzystania z InnoDB
Obsługa transakcji, procedur składowanych, wyzwalaczy
Blokowanie rekordów
Pozwala nam to mieć cechy ACID (atomowość, spójność, izolacja i trwałość: atomowość, spójność, izolacja i trwałość w języku hiszpańskim), gwarantujące integralność naszych tablic.
Jest prawdopodobne, że jeśli nasza aplikacja intensywnie korzysta z INSERT i UPDATE, zauważymy wzrost wydajności w porównaniu do MyISAM.
Zalety korzystania z MyISAM
Ogólnie szybsze odzyskiwanie danych.
Zalecane dla aplikacji, które dominują w instrukcjach SELECT przed INSERT/UPDATE.
Brak cech atomowości, ponieważ nie trzeba przeprowadzać kontroli integralności referencyjnej ani blokować tabel w celu wykonania operacji, prowadzi nas, podobnie jak w poprzednich punktach, do większej szybkości.
Czy Twój stół będzie otrzymywać INSERT, UPDATE i DELETE znacznie dłużej, niż zostanie zapytany?
Wolisz lub potrzebujesz projektu relacyjnej bazy danych?
Wygodne korzystanie z InnoDB
Czy będziesz musiał przeprowadzić wyszukiwanie pełnotekstowe?
Czy miejsce na dysku lub pamięć stanowi problem?

Twój silnik musi być MyISAMPodobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave