Jeśli chodzi o „Dynamic” , nieskompresowany format zawierający tylko Barracuda, niewiele zmieniło się od kompaktowych, głównie w zakresie sposobu przechowywania obiektów blob (i dowolnych bardzo dynamicznych pól) . Nigdy nie miałem problemów z kompaktowaniem vs. dynamiką, więc mogę spokojnie polecić dynamikę Barracudy. Pamiętaj, że Barracuda obsługuje również stare nadmiarowe i kompaktowe formaty wierszy .
Artykuł, który wspominasz, jest prawdopodobnie zbyt stary (5.1) i, jak wspomina Peter Z., CEO Percona, w komentarzach może być nieco mylący. To nie znaczy, że kompresja nie może być ogromnym zyskiem w zależności od obciążeń. Polecam jednak wypróbowanie go w wersjach> = 5.6, ponieważ zarówno Facebook, jak i Oracle wprowadziły wiele ulepszeń.
Jako nowsze materiały referencyjne polecam Ci:
W szczególności lubię materiały z Facebooka, ponieważ są one stronami trzecimi (nie potrzeba agendy) i mają jedno z największych wdrożeń MySQL na świecie. Jak widać, mieli bardzo udane konfiguracje łączące technologię SSD z kompresją.
Czy ci to przyniesie korzyść? Będzie to zależeć od obciążenia, zestawu roboczego i konfiguracji (IOPS, pamięć) . W zależności od tego, czy jesteś związany IO, CPU czy pamięcią, kompresja może wpływać negatywnie w niektórych przypadkach, dodając dodatkowy procesor, wymagania dotyczące pamięci (zarówno skompresowane, jak i nieskompresowane strony są przechowywane w puli buforów InnoDB) lub generując zbyt wiele błędów kompresji, augmentacja opóźnienie. Zależy to również od rodzaju danych: kompresja może bardzo pomóc w przypadku dużych obiektów blob tekstowych, ale może być bezużyteczna w przypadku już skompresowanych danych.
Z mojego doświadczenia wynika, że w praktyce są ludzie, dla których kompresja była świętym graalem wydajności i są z tego bardzo zadowoleni, ale w innych przypadkach musieliśmy powrócić do nieskompresowanych danych, ponieważ nie uzyskano żadnego wzmocnienia. Podczas gdy bardzo duże obciążenie związane z pisaniem może wydawać się złym środowiskiem do kompresji, jeśli w twoim konkretnym przypadku nie jesteś związany procesorem i pamięcią, ale związany z iops, może być nie mniej pomocny.
Zasadniczo bardzo trudno jest przewidzieć wyniki, zwykle powinieneś skonfigurować środowisko testowe do testów porównawczych, a następnie dowiedzieć się, dlaczego osiągasz lepsze lub gorsze wyniki (i w ten sposób możesz grać z różnymi rozmiarami bloków itp.). Barracuda jest całkowicie bezpieczny. Kompresja może być dla Ciebie. I zawsze możesz eksperymentować z innymi metodami kompresji, takimi jak kompresja obiektów blob po stronie klienta (na przykład, jeśli skończysz procesorem) lub inne silniki innych firm, takie jak RocksDB i TokuDB , w których kompresja jest dużym priorytetem, ponieważ jest skoncentrowana w wydajności dla większych zestawów danych niż InnoDB może obsłużyć.
W skrócie: Główne powody korzystania z Barracuda to obsługa BLOB, innodb_large_prefix
kompatybilność (duże indeksy) i kompresja. Dynamiczny, w MySQL 8.0 jest teraz domyślnym formatem plików.