Jeśli chodzi o MySQL, nie ma porównania między silnikami pamięci masowej, z wyjątkiem tego, że dzieli się on na dwie podstawowe kategorie:
MySQL wykorzystuje kilka silników pamięci masowej
Jeśli chodzi o wymienione silniki pamięci, jedynymi, które mają zgodność z ACID, są InnoDB i NDB. Dlaczego warto to wymienić? Dwa powody:
- Inne silniki pamięci masowej po prostu nie korzystają z obecności większej liczby rdzeni, innych niż podstawowe operacje we / wy dysku, użycie procesora i ogólna przepustowość.
- Kod dla każdego nietransakcyjnego silnika pamięci masowej, który narzuca zasadniczo 14 operacji wewnętrznych niezależnie od silnika pamięci masowej, nie został zaprojektowany w celu wykorzystania dostępu do wielu rdzeni.
InnoDB pod MySQL 5.5, wtyczka InnoDB) i XtraDB serwera Percona Server mają opcje, które można ustawić w celu uzyskania dostępu do wielu rdzeni (serwer Percona robi to już dłużej). W rzeczywistości Percona wstrzykuje około 30 000 wierszy kodu specjalnie w celu zwiększenia wydajności InnoDB z każdą nową wersją GA kodu źródłowego MySQL. Możemy być pewni, że Oracle dołączyło własne ulepszenia z własnego think tanku do działania w InnoDB dla operacji wielordzeniowych (od MySQL 5.1.38).
Dzięki konieczności wykonywania MVCC na danych w połączeniu z blokowaniem wierszy / stron, wydajność transakcji można teraz oprzyrządować, zmierzyć i skonfigurować.
Jeśli nauczyłem się jednej rzeczy na temat używania wielu rdzeni, musisz skutecznie dostroić InnoDB, a nie polegać tylko na InnoDB po wyjęciu z pudełka .
AKTUALIZACJA 2011-09-20 08:03 EDT
W odniesieniu do InnoDB korzystającego ze wszystkich rdzeni musimy zachować percepcję. Rdzenie muszą mieć również inne cechy (system operacyjny, dysk, pamięć, aplikacje, monitorowanie itp.) W serwerze bazy danych. Dla osób o skromnych budżetach wielu z nich ma również serwer bazy danych zapewniający NFS, monitorowanie z Munin, obsługę aplikacji dla JBoss, PHP i lista jest długa. Jeśli chcesz, aby MySQL, a dokładniej InnoDB, używał większej liczby rdzeni, Serwer bazy danych musi być dedykowany wyłącznie MySQL, a OS / Dysk / Pamięć musi mieć tendencję tylko do MySQL . Biorąc pod uwagę tę perspektywę, InnoDB bez wątpliwości zaangażuje więcej rdzeni .
Jeśli chodzi o wtyczkę InnoDB, wspomniano po prostu o pokazaniu wcześniejszych inicjatyw mających na celu lepszą InnoDB ze strony MySQL (eh, Oracle. Przepraszam, wciąż nie zjeżdża z języka). Nowe zmienne przywołujące większą aktywność podstawową stały się oczywiste z MySQL 5.1.38.
Na przykład innodb_read_io_threads i innodb_write_io_threads (oba od MySQL 5.1.38) przydzielają określoną liczbę wątków do odczytu i zapisu. Domyślna wartość to 4, a maksymalna to 64. Tak różne wartości domyślne i maksymalne (4–64) pokazują, że InnoDB jest taktowany wielowątkowo i intensywnie korzysta z rdzenia podczas jego konfiguracji !!!
Zaspokojenie potrzeb społeczności MySQL dostępu do większej liczby rdzeni za pomocą InnoDB było prowadzone przez Perconę. W związku z tym MySQL zaczął podążać za nimi. Muszę przyznać, że Oracle (fuj) dokonał niezbędnych ulepszeń, aby uzyskać więcej podstawowej działalności.