E-book details

MySQL. Mechanizmy wewnętrzne bazy danych

MySQL. Mechanizmy wewnętrzne bazy danych

Sasha Pachev

Ebook

Poznaj sekrety jednej z najpopularniejszych baz danych

  • Jak przechowywane są dane?
  • Jak dodawać własne zmienne konfiguracyjne?
  • Jak przebiega proces replikacji?

MySQL to obecnie jedna z najpopularniejszych baz danych. Jedną z jej największych zalet jest nieodpłatny dostęp zarówno do samego systemu, jak i do jego kodu źródłowego. Możliwość przeglądania kodu i -- w razie potrzeby -- samodzielnego modyfikowania go może okazać się przydatna programistom tworzącym aplikacje, które korzystają z MySQL jako zaplecza bazodanowego. Jednak samodzielne "przegryzanie się" przez setki tysięcy linii kodu i rozpracowywanie mechanizmów działania bazy danych może zająć mnóstwo czasu.

Dzięki tej książce poznasz kod źródłowy i sposób działania tego narzędzia. Autor, przez wiele lat pracujący w zespole tworzącym MySQL, przedstawia w niej tajniki systemu. Podczas czytania poznasz architekturę i wzajemne powiązania pomiędzy komponentami MySQL, strukturę kodu źródłowego oraz metody modyfikowania go przez kompilacją. Dowiesz się także, jak przebiega komunikacja pomiędzy klientem i serwerem bazy danych, jak realizowane są zapytania, w jaki sposób składowane są dane i jak implementowane są mechanizmy replikacji.

  • Architektura MySQL
  • Struktura kodu źródłowego
  • Komunikacja pomiędzy klientem i serwerem
  • Zmienne konfiguracyjne
  • Obsługa żądań
  • Parser i optymalizator zapytań
  • Mechanizmy składowania danych
  • Replikacja danych

Dzięki tej książce zrozumiesz budowę bazy danych MySQL i będziesz w stanie samodzielnie dostosować ją do każdego zadania.

Przedmowa (9)

1. Historia i architektura MySQL (15)

  • Historia MySQL (15)
  • Architektura MySQL (17)

2. Praca z kodem źródłowym MySQL (31)

  • Powłoka Uniksa (31)
  • BitKeeper (31)
  • Przygotowywanie systemu do budowania MySQL z drzewa BitKeepera (34)
  • Budowanie MySQL z drzewa BitKeepera (35)
  • Budowanie z dystrybucji źródłowej (37)
  • Instalowanie MySQL w katalogu systemowym (38)
  • Układ katalogów z kodem źródłowym (38)
  • Przygotowywanie systemu do uruchomienia MySQL w debugerze (40)
  • Wycieczka po kodzie źródłowym w towarzystwie debugera (40)
  • Podstawy pracy z gdb (41)
  • Wyszukiwanie definicji w kodzie źródłowym (44)
  • Interesujące punkty wstrzymania i zmienne (45)
  • Modyfikowanie kodu źródłowego (45)
  • Wskazówki dla koderów (47)
  • Aktualizowanie repozytorium BitKeepera (50)
  • Zgłaszanie poprawki (51)

3. Podstawowe klasy, struktury, zmienne i interfejsy API (53)

  • THD (53)
  • NET (58)
  • TABLE (58)
  • Field (58)
  • Narzędziowe wywołania API (65)
  • Makra preprocesora (68)
  • Zmienne globalne (70)

4. Komunikacja między klientem a serwerem (73)

  • Przegląd protokołu (73)
  • Format pakietu (73)
  • Relacje między protokołem MySQL a warstwą systemu operacyjnego (74)
  • Uzgadnianie połączenia (75)
  • Pakiet polecenia (80)
  • Odpowiedzi serwera (83)

5. Zmienne konfiguracyjne (89)

  • Zmienne konfiguracyjne: samouczek (89)
  • Interesujące aspekty konkretnych zmiennych konfiguracyjnych (96)

6. Wątkowa obsługa żądań (115)

  • Wątki kontra procesy (115)
  • Implementacja obsługi żądań (117)
  • Problemy programowania wątkowego (121)

7. Interfejs mechanizmów składowania (127)

  • Klasa handler (127)
  • Dodawanie własnego mechanizmu składowania do MySQL (142)

8. Dostęp współbieżny i blokowanie (163)

  • Menedżer blokad tabel (164)

9. Parser i optymalizator (169)

  • Parser (169)
  • Optymalizator (172)

10. Mechanizmy składowania (195)

  • Wspólne cechy architektury (196)
  • MyISAM (196)
  • InnoDB (202)
  • Memory (Heap) (204)
  • MyISAM Merge (205)
  • NDB (205)
  • Archive (206)
  • Federated (207)

11. Transakcje (209)

  • Implementowanie transakcyjnego mechanizmu składowania (209)
  • Implementowanie podklasy handler (210)
  • Definiowanie handlertona (212)
  • Praca z pamięcią podręczną zapytań (214)
  • Praca z binarnym dziennikiem replikacji (214)
  • Unikanie zakleszczeń (215)

12. Replikacja (217)

  • Przegląd (217)
  • Replikacja oparta na instrukcjach i na wierszach (218)
  • Dwuwątkowy serwer podrzędny (219)
  • Konfiguracja z wieloma serwerami nadrzędnymi (219)
  • Polecenia SQL ułatwiające zrozumienie replikacji (220)
  • Format dziennika binarnego (223)
  • Tworzenie własnego narzędzia do replikacji (227)

Skorowidz (229)

  • Title: MySQL. Mechanizmy wewnętrzne bazy danych
  • Author: Sasha Pachev
  • Original title: Understanding MySQL Internals (Understanding)
  • Translation: Grzegorz Werner
  • ISBN: 978-83-246-6197-8, 9788324661978
  • Date of issue: 2012-09-06
  • Format: Ebook
  • Item ID: msqlme
  • Publisher: Helion