Co nowego w MySQL

W wersji MySQL 5.6 Release Candidate Oracle poprawił wydajność, skalowalność, pasmo, a także udostępnił liczniki umożliwiające bardzo dokładną analizę pracy bazy przy dużym obciążeniu.

Fakty o MySQL

Szacowana liczba użytkowników - ponad 15 mln aktywnych instalacji, prawdopodobnie jeszcze większa

163 tys. fanów na Facebooku, wzrost 35% rocznie

25 tys. zainteresowanych informacjami na Twitterze, roczny wzrost wyniósł 67%

1,4 mln osób subskrybuje newsletter MySQL

Najważniejsze nagrody - CRN, Linux Journal, PHP Architect

Baza danych dostarczana w najpopularniejszej dystrybucji Linuksa na świecie - Ubuntu

Wersja dla systemu Microsoft Windows jest równie popularna, także na stacjach roboczych

MySQL jest najpopularniejszą na świecie bazą danych rozwijaną w modelu open source. Jest do dojrzały projekt, który znajduje swoje zastosowanie w 9 na 10 najważniejszych stron www na świecie. Baza danych MySQL jest najczęściej wykorzystywana w hostingu, ale pracuje także w aplikacjach na różnych platformach. Obecnie rozwojem MySQL zajmuje się firma Oracle. Edward Screven, główny architekt korporacyjny w Oracle, mówi: "Strategia naszej firmy zakłada dostarczenie rozwiązań, które są najlepsze w swojej klasie. W wielu przypadkach, szczególnie przy aplikacjach webowych lub mobilnych, najlepszym wyborem bazy danych będzie MySQL".

MySQL 5.6 Release Candidate

Prace rozwojowe doprowadziły do wydania MySQL 5.6 RC, w którym usprawniono: InnoDB w celu osiągnięcia lepszej wydajności, optymalizator, narzędzie replikacji, a także schematy związane z wydajnością. W ten sposób Oracle poprawia wydajność, skalowalność, pasmo i udostępnia nowe liczniki umożliwiające dokładną analizę pracy bazy przy dużym obciążeniu i precyzyjne strojenie wydajnościowe.

Zmiany w obrębie InnoDB objęły usprawnienie obsługi pamięci podręcznej procesora i wątków oraz pracy współbieżnej. Lepsza jest także obsługa zapytań, które tylko odczytują informację. Zmiany te bardzo przyspieszają bazę - MySQL 5.6.7 jest ponad dwa razy szybszy od 5.5.28, przy czym może wykorzystać 48 rdzeni. Trwają prace nad optymalnym wykorzystywaniem 64 rdzeni w jednej instancji bazy.

Zmiany w optymalizatorze obejmują: usprawnienie podkwerend, sprawniejsze sortowanie, opóźnioną materializację perspektyw wykorzystywanych jako źródło (FROM w zapytaniu), wielozakresowy odczyt i wsadowy dostęp do kluczy. W niektórych przypadkach nowości te przyspieszają zapytania ponad 200 razy. Z kolei trwałe statystyki optymalizatora umożliwiają długoterminowe strojenie bazy i zapewniają stabilność osiągów w czasie.

Aby ułatwić strojenie bazy, wprowadzono opcję EXPLAIN także dla zapytań wstawiania, modyfikacji i usuwania danych, a narzędzie MySQL Workbench dostarcza plan wykonania zapytania w czytelnej formie graficznej.

Nowością jest motor wyszukiwania pełnotekstowego wprowadzony do InnoDB, a także przenośne przestrzenie tabel (transportable tablespaces) oraz możliwość przechowywania danych niestrukturalnych w InnoDB. Dostęp do danych w postaci klucz-wartość jest nowością w InnoDB. Odbywa się za pomocą standardowego API Memcached, korzysta z istniejących klientów i omija parsowanie kodu przez motor . Metoda ta umożliwia ponaddziesięciokrotne przyspieszenie prostego pobierania danych klucz-wartość w bazie.

W wydaniu 5.6 RC wprowadzono operacje, które w InnoDB można wykonywać online - są to dodawanie indeksów, kolumn, obcych kluczy, zmiana nazwy kolumny czy tabeli, tworzenie podstawowego klucza czy odbudowywanie indeksu klastrowego.

Usprawnienia objęły też wielowątkowy serwer slave, który działa znacznie wydajniej niż poprzednio. Wprowadzono także identyfikator transakcji, co usprawnia pracę w trybie wysokiej dostępności. Obecnie w konfiguracji klastrowej można automatycznie stwierdzić, która z maszyn slave powinna przejąć rolę maszyny master (slave promotion), można śledzić replikację i proces automatycznego przełączania węzłów klastra. Aby móc odbudować klaster w przypadku awarii, wprowadzono automatyczne wycofanie transakcji oraz restart replikacji w miarę potrzeb - w czym pomaga binarne zatwierdzanie grup logów. Dotychczas opcja ta wiązała się ze znacznym spadkiem wydajności - obecnie spadek zmniejszono do około 10%, co usprawnia pracę klastra.

Istotne zmiany dotyczą także bezpieczeństwa bazy. Wprowadzone zostały nowe zasady obsługi haseł.

Pierwsze wydanie Developers Milestone Release

W ramach procesu usprawnienia rozwoju bazy MySQL Oracle rozpoczyna wydania oznaczone jako Developers Milestone Release. Mają cechować się one kompletną funkcjonalnością oraz dobrą jakością kodu. Edward Screven mówi: "Wydania takie będą udostępnianie co cztery miesiące, będą zawierać wszystkie planowane opcje i możliwości. Opcje te będą dobrze przetestowane, do tego stopnia, że w każdej chwili mogłyby stać się częścią ogólnie dostępnego wydania". W formie Developers Milestone Release będzie obecnie wydane oprogramowanie MySQL Cluster 7.3.

MySQL nie tylko dla Linuksa

MySQL dla Windows cechował się niedostateczną wydajnością i problemami w zarządzaniu. Obecnie dostępny jest dobry instalator, wtyczka do Excela obsługująca drag and drop, umożliwiająca analizę danych za pomocą arkusza kalkulacyjnego, nowe narzędzie Notifier, lepsze narzędzie Workbench, a także kreator migracji z bazy SQL Server, Sybase i PostgreSQL do MySQL. W jednej paczce instalacyjnej dostarczane są także przykładowe bazy. Według Oracle podstawową korzyścią przy migracji do MySQL na platformie Windows ma być o wiele niższy koszt TCO bazy MySQL Enterprise w porównaniu do bazy SQL Server w konfiguracji klastrowej.

Porównanie wydajności wersji 5.6 RC do poprzedniej 5.5.x

Porównanie wydajności wersji 5.6 RC do poprzedniej 5.5.x