Wydano nowe MySQL 5.5

Od czasu gdy Oracle zarządza projektem MySQL nie ustają dyskusje na temat przyszłości tego systemu. Jeden ze współtwórców bazy, Michael Widenius, po odejściu z projektu postanowił stworzyć nawet własną alternatywę o nazwie MariaDB. Tymczasem wydana została kolejna wersja MySQL 5.5, wprowadzająca wiele nowych rozwiązań oraz zwiększająca wydajność.

InnoDB domyślnym typem tabel

Dotychczas zakładając tabele w MySQL, domyślnym typem był MyISAM. Zalecenia specjalistów są jednak jednoznaczne – znacznie lepiej korzystać z InnoDB. Stanowi ono rozwiązanie wydajniejsze, oferujące transakcje, klucze obce oraz odzyskiwanie danych w przypadku awarii. Dlatego ten typ stał się domyłbym rozwiązaniem w nowej wersji bazy. Dodatkowo Oracle twierdzi, że w MySQL 5.5 InnoDB zostało zoptymalizowane pod kątem wielordzeniowych procesorów oraz poprawiono skalowalność.

Poprawiona replikacja

Wprowadzono dwa nowe mechanizmy. Półsynchroniczna replikacja poprawia niezawodność dzięki temu, że węzeł master może czekać, aż ostatni slave zaloguje transakcję. Drugim rozwiązaniem jest tzw. Replication HeartBeat. Dzięki temu użytkownik jest powiadamiany, że replikacja przestała działać. Realizowane jest to dzięki przesyłaniu w regularnych odstępach czasu od węzła master do węzłów slave informacji o pracy. Jeśli z jakiegoś powodu informacja taka nie dotrze, węzeł slave uzyska wiadomość, że połączenie z głównym serwerem nie działa prawidłowo.

Zwiększona wydajność

Oracle chwali się, że po aktualizacji do MySQL 5.5 wzrośnie ona wielokrotnie. Szczególnie ma to mieć miejsce w środowisku Windows, gdzie wg oficjalnych komunikatów producenta wydajność ma się poprawić nawet o 1500% w trybie Read/Write (benchmark SysBench). Nie ucieszy to jednak zbyt wielu osób, produkcyjne środowiska oparte na Winodws należą do rzadkości.

Jednak wzrost wydajności nastąpił także w przypadku Linux. W trybie Read/Write benchmark SysBench notował polepszenie do 360%, w trybie Read only do 200%. Jeśli wyniki te potwierdzą się w normalnych serwisach produkcyjnych, mogą znacząco wpłynąć na poprawę wydajności korzystających z nich aplikacji.

Ładowanie danych z XML

Pojawiła się nowa komenda LOAD XML, dzięki której można importować dane zawarte w pliku XML bezpośrednio do tabeli w bazie. Komenda ma następującą postać:


LOAD XML [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE [db_name.]tbl_name
[CHARACTER SET charset_name]
[ROWS IDENTIFIED BY '<tagname>']
[IGNORE number [LINES | ROWS]]
[(column_or_user_var,...)]
[SET col_name = expr,...]

Polecenie umożliwia import z plików XML przygotowanych w trzech różnych formatach:

<row column1="value1" column2="value2" .../>
<row>
<column1>value1</column1>
<column2>value2</column2>
</row>
<row><field name='column1'>value1</field>
<field name='column2'>value2</field>
</row>

Funkcja TO_SECONDS()

Nowa funkcja, która pomaga w zarządzaniu datami i czasem. Przyjmuje jako parametr datę z ewentualnym czasem, zwraca natomiast liczbę sekund jaka upłynęła od roku 0. Poniżej przedstawiono przykładowe działanie:


mysql> SELECT TO_SECONDS(950501);
 -> 62966505600
mysql> SELECT TO_SECONDS('2009-11-29');
 -> 63426672000
mysql> SELECT TO_SECONDS('2009-11-29 13:43:32');
 -> 63426721412
mysql> SELECT TO_SECONDS( NOW() );
 -> 63426721458

Oprócz tego…

Z innych zmian wprowadzonych w MySQL 5.5 warto wymienić lepsze mechanizmy zarządzania, ulepszone partycjonowanie tabel, zmianę w składni SIGNAL/RESIGNAL oraz poprawę diagnostyki w postaci nowego PERFORMANCE_SCHEMA.

Pełna lista zmian została przedstawiona w dokumencie, który możemy zamówić na maila na stronie projektu MySQL.

Dodaj komentarz