Details zum E-Book

Wysoko wydajne MySQL. Sprawdzone strategie działania na dużą skalę. Wydanie IV

Wysoko wydajne MySQL. Sprawdzone strategie działania na dużą skalę. Wydanie IV

Silvia Botros, Jeremy Tinley

E-book

MySQL od lat jest najbardziej znaną i lubianą bazą danych typu open source. Wciąż spełnia oczekiwania użytkowników, staje się bowiem coraz bardziej zaawansowanym rozwiązaniem bazodanowym. Równocześnie rośnie złożoność tego oprogramowania, pojawiają się nowe funkcje i narzędzia. Ewoluuje też rola administratora bazy danych, podobnie jak zmienia się podejście do pracy zespołowej. Efektem tych zmian powinno być dostarczenie aplikacji o wysokiej wartości biznesowej, takiej, która będzie się skalowała wraz z organizacją. Warunkiem osiągnięcia tego celu jest jednak gruntowna znajomość MySQL.

Ten starannie zaktualizowany przewodnik pozwoli Ci poznać zaawansowane techniki pracy z serwerem MySQL: począwszy od tworzenia obiektów, poprzez projektowanie schematów, indeksów i zapytań, skończywszy na optymalizacji serwera, sprzętu i systemu operacyjnego. Opisano tu bezpieczne i praktyczne sposoby skalowania aplikacji za pomocą replikacji. Pokazano, jak można zapewnić równoważenie obciążenia i sprawić, że aplikacja będzie działała nawet w razie awarii. Omówiono najnowsze trendy pracy z serwerami MySQL (w tym bazy pracujące w chmurze), a także nowe funkcje i narzędzia. Nie zabrakło najlepszych praktyk w zakresie zapewniania bezpieczeństwa bazy, jej wydajności i stabilności. Dzięki temu przewodnikowi zdobędziesz pełną wiedzę o tym, jak nowoczesne firmy używają MySQL na dużą skalę.

W książce między innymi:

  • architektura MySQL i silniki pamięci masowej
  • konfiguracja serwera a sprzęt
  • replikacja MySQL i zapewnienie wysokiej dostępności aplikacji
  • serwery MySQL w środowiskach zarządzanej chmury
  • zaawansowane techniki optymalizacji MySQL
  • automatyzacja zarządzania bazą danych

MySQL: skalowalne rozwiązanie do nowoczesnych zastosowań!

Przedmowa

Wprowadzenie

Rozdział 1. Architektura MySQL

  • Architektura logiczna MySQL
    • Zarządzanie połączeniami i bezpieczeństwo
    • Optymalizacja i wykonywanie zapytań
  • Kontrola współbieżności
    • Blokady odczytu (zapisu)
    • Zasięg działania blokad
  • Transakcje
    • Poziomy izolacji
    • Zakleszczenia
    • Rejestrowanie zdarzeń transakcji
    • Transakcje w MySQL
  • Mechanizm Multiversion Concurrency Control
  • Replikacja
  • Struktura plików danych
  • Silnik InnoDB
    • Obsługa dokumentu JSON
    • Zmiany w słowniku danych
    • Niepodzielne operacje typu DDL
  • Podsumowanie

Rozdział 2. Monitorowanie w świecie inżynierii niezawodności

  • Wpływ inżynierii niezawodności na zespoły administratorów baz danych
  • Definiowanie celów poziomu usługi
    • Co spowoduje zadowolenie klientów?
  • Co należy mierzyć?
    • Definiowanie SLI i SLO
    • Rozwiązania w zakresie monitorowania
    • Monitorowanie dostępności
    • Monitorowanie opóźnienia zapytania
    • Monitorowanie pod kątem błędów
    • Monitorowanie proaktywne
  • Pomiar długoterminowej wydajności działania
    • Poznanie rytmu pracy firmy
    • Efektywne śledzenie wskaźników
    • Stosowanie narzędzi monitorowania do analizy wydajności działania
    • Stosowanie SLO do przygotowania architektury danych
  • Podsumowanie

Rozdział 3. Funkcjonalność Performance Schema

  • Wprowadzenie do Performance Schema
    • Elementy instrumentu
    • Organizacja konsumenta
    • Wykorzystanie zasobów
    • Ograniczenia
    • Schemat sys
    • Poznajemy wątki
  • Konfiguracja
    • Włączanie i wyłączanie Performance Schema
    • Włączanie i wyłączanie instrumentacji
    • Włączanie i wyłączanie konsumentów
    • Dostrajanie monitorowania określonych obiektów
    • Dostrajanie monitorowania wątków
    • Dostosowywanie wielkości pamięci dla Performance Schema
    • Wartości domyślne
  • Stosowanie Performance Schema
    • Analizowanie zapytań SQL
    • Analiza wydajności działania operacji odczytu i zapisu
    • Analiza blokad metadanych
    • Analiza poziomu użycia pamięci
    • Analiza zmiennych
    • Analiza najczęściej występujących błędów
    • Analiza samej funkcjonalności Performance Schema
  • Podsumowanie

Rozdział 4. Optymalizacja systemu operacyjnego i osprzętu

  • Co ogranicza wydajność MySQL?
  • W jaki sposób wybrać procesor dla MySQL?
  • Zrównoważenie pamięci i zasobów dyskowych
    • Buforowanie, odczyt i zapis
    • Jaki zestaw roboczy jest odpowiedni dla Ciebie?
  • Napęd SSD
    • Ogólne omówienie pamięci flash
    • Mechanizm usuwania nieużytków
  • Optymalizacja wydajności macierzy RAID
    • Awaria macierzy RAID, odzyskiwanie danych i monitoring
    • Konfiguracja macierzy RAID i buforowanie
  • Konfiguracja sieciowa
  • Wybór systemu plików
    • Wybór zarządcy kolejki dyskowej
    • Przestrzeń wymiany
    • Stan systemu operacyjnego
    • Inne użyteczne narzędzia
  • Podsumowanie

Rozdział 5. Optymalizacja konfiguracji serwera

  • Podstawy konfiguracji MySQL
    • Składnia, zasięg oraz dynamizm
    • Trwałe zmienne systemowe
    • Efekt uboczny ustawiania zmiennych
    • Planowanie zmiany zmiennej
  • Czego nie należy robić?
  • Tworzenie pliku konfiguracyjnego MySQL
    • Konfiguracja minimalna
    • Analizowanie zmiennych stanu serwera MySQL
  • Konfiguracja poziomu użycia pamięci
    • Ilość pamięci używanej przez każde połączenie
    • Rezerwacja pamięci dla systemu operacyjnego
    • Pula buforów InnoDB
    • Bufor wątków
  • Dostrajanie zachowania operacji I/O w MySQL
    • Dziennik zdarzeń transakcji InnoDB
    • Bufor dziennika zdarzeń
    • Przestrzeń tabel InnoDB
    • Dostosowywanie innych opcji I/O
  • Dostosowywanie współbieżności MySQL
  • Ustawienia dotyczące bezpieczeństwa
  • Zaawansowane ustawienia InnoDB
  • Podsumowanie

Rozdział 6. Projektowanie schematu i zarządzanie nim

  • Wybór optymalnego rodzaju danych
    • Liczby całkowite
    • Liczby rzeczywiste
    • Ciągi tekstowe
    • Rodzaje danych dla daty i godziny
    • Bitowe rodzaje danych
    • Dane JSON
    • Wybór identyfikatorów
    • Dane specjalnego rodzaju
  • Kwestie, które trzeba wziąć pod uwagę podczas projektowania schematu w MySQL
    • Zbyt wiele kolumn
    • Zbyt wiele złączeń
    • Wszechobecne wartości typu ENUM
    • Typ ENUM w przebraniu
    • Wartość NULL
  • Zarządzanie schematem
    • Zarządzanie schematem jako część platformy przechowywania danych
  • Podsumowanie

Rozdział 7. Indeksowanie zapewniające wysoką wydajność

  • Podstawy indeksowania
    • Rodzaje indeksów
    • Zalety indeksów
  • Strategie indeksowania w celu osiągnięcia maksymalnej wydajności
    • Prefiks indeksu oraz selektywność indeksu
    • Indeksy wielokolumnowe
    • Wybór odpowiedniej kolejności kolumn
    • Indeksy klastrowane
    • Indeksy pokrywające
    • Skanowanie indeksu w celu przeprowadzenia sortowania
    • Indeksy zbędne i powielone
    • Indeksy nieużywane
  • Obsługa indeksu oraz tabeli
    • Wyszukiwanie i naprawa uszkodzeń tabeli
    • Uaktualnianie danych statystycznych indeksu
    • Ograniczanie wielkości indeksu i fragmentacji danych
  • Podsumowanie

Rozdział 8. Optymalizacja wydajności zapytań

  • Dlaczego zapytania są powolne?
  • Podstawy powolnych zapytań: optymalizacja dostępu do danych
    • Czy zapytanie bazy danych obejmuje dane, które są niepotrzebne?
    • Czy MySQL analizuje zbyt dużą ilość danych?
  • Sposoby restrukturyzacji zapytań
    • Zapytanie skomplikowane kontra wiele mniejszych
    • Podział zapytania
    • Podział złączeń
  • Podstawy wykonywania zapytań
    • Protokół klient-serwer MySQL
    • Stany zapytania
    • Proces optymalizacji zapytania
    • Silnik wykonywania zapytań
    • Zwrot klientowi wyników zapytania
  • Ograniczenia optymalizatora zapytań MySQL
    • Ograniczenia klauzuli UNION
    • Szerzenie równości
    • Wykonywanie równoległe
    • Równoczesne wykonywanie poleceń SELECT i UPDATE w tej samej tabeli
  • Optymalizacja określonego rodzaju zapytań
    • Optymalizacja zapytań COUNT()
    • Optymalizacja zapytań typu JOIN
    • Optymalizacja zapytań typu GROUP BY WITH ROLLUP
    • Optymalizacja zapytań typu LIMIT i OFFSET
    • Optymalizacja za pomocą opcji SQL_CALC_FOUND_ROWS
    • Optymalizacja klauzuli UNION
  • Podsumowanie

Rozdział 9. Replikacja

  • Ogólny opis replikacji
    • W jaki sposób działa replikacja?
  • Szczegóły kryjące się za replikacją
    • Wybór formatu replikacji
    • Globalny identyfikator transakcji
    • Zapewnienie replikacji odporności na awarie
    • Replikacja opóźniona
    • Replikacja wielowątkowa
    • Replikacja półsynchroniczna
    • Filtry replikacji
  • Poprawne działanie replikacji pomimo awarii
    • Promocja planowana
    • Promocja nieplanowana
    • Kompromisy związane z promocją
  • Topologie replikacji
    • Aktywny-pasywny
    • Aktywny-pula odczytu
    • Odradzane topologie
    • Ring
  • Administracja replikacją i jej obsługa
    • Monitorowanie replikacji
    • Pomiar opóźnienia replikacji
    • Określanie, czy serwer repliki zachowuje spójność z serwerem źródła
  • Problemy związane z replikacją i sposoby ich rozwiązywania
    • Uszkodzenie binarnego dziennika zdarzeń w źródle
    • Nieunikalne identyfikatory serwerów
    • Niezdefiniowane identyfikatory serwerów
    • Brakujące tabele tymczasowe
    • Niereplikowanie wszystkich uaktualnień
    • Ogromne opóźnienie replikacji
    • Zbyt duże pakiety w serwerze źródła
    • Brak miejsca na dysku
    • Ograniczenia replikacji
  • Podsumowanie

Rozdział 10. Kopia zapasowa i odzyskiwanie

  • Dlaczego kopia zapasowa?
  • Definiowanie wymagań procesu odzyskiwania
  • Projektowanie rozwiązania kopii zapasowej MySQL
    • Kopia zapasowa online czy offline?
    • Logiczna czy bezpośrednia kopia zapasowa?
    • Co należy umieszczać w kopii zapasowej?
    • Przyrostowa kopia zapasowa
    • Replikacja
  • Zarządzanie kopią zapasową binarnych dzienników zdarzeń i jej tworzenie
  • Narzędzia do tworzenia kopii zapasowej i przywracania z niej danych
    • MySQL Enterprise Backup
    • Percona XtraBackup
    • mydumper
    • mysqldump
  • Tworzenie kopii zapasowej danych
    • Tworzenie logicznej kopii zapasowej
    • Migawka systemu plików
    • Percona XtraBackup
  • Odzyskiwanie z kopii zapasowej
    • Przywracanie logicznych kopii zapasowych
    • Przywracanie bezpośrednich plików z migawki
    • Przywracanie danych za pomocą narzędzia Percona XtraBackup
    • Uruchomienie MySQL po przywróceniu bezpośrednich plików
  • Podsumowanie

Rozdział 11. Skalowalność MySQL

  • Czym jest skalowanie?
  • Obciążenie ograniczone operacjami odczytu kontra obciążenie ograniczone operacjami zapisu
    • Analiza obciążenia
    • Obciążenie ograniczone operacjami odczytu
    • Obciążenie ograniczone operacjami zapisu
  • Sharding funkcjonalny
  • Skalowanie obciążenia ograniczonego operacjami odczytu
    • Zarządzanie konfiguracją dla pul operacji odczytu
    • Sprawdzanie stanu puli odczytu
    • Algorytmy równoważenia obciążenia
  • Kolejkowanie
  • Skalowanie zapisu za pomocą shardingu
    • Wiele kluczy partycjonowania
    • Wykonywanie zapytań między serwerami
    • Vitess
    • ProxySQL
  • Podsumowanie

Rozdział 12. MySQL w chmurze

  • Zarządzany serwer MySQL
    • Amazon Aurora dla MySQL
    • GCP Cloud SQL
  • MySQL w maszynie wirtualnej
    • Rodzaje maszyn wirtualnych w chmurze
    • Wybór odpowiedniego typu maszyny
    • Wybór odpowiedniego typu dysku
    • Wskazówki dodatkowe
  • Podsumowanie

Rozdział 13. Zgodność i MySQL

  • Co to jest zgodność?
    • Service Organization Controls Type 2
    • Ustawa Sarbanesa-Oxleya
    • Norma bezpieczeństwa Payment Card Industry Data Security Standard
    • Ustawa Health Insurance Portability and Accountability Act
    • Program FedRAMP
    • Rozporządzenie o ochronie danych osobowych
    • Schrems II
  • Przygotowanie do kontroli zapewnienia zgodności
    • Zarządzanie kluczami tajnymi użytkownika
    • Rozdział ról i danych
    • Śledzenie zmian
    • Procedury tworzenia kopii zapasowej i przywracania danych
  • Podsumowanie

Dodatek A. Uaktualnianie MySQL

  • Dlaczego należy uaktualnić serwer MySQL?
  • Uaktualnienie cyklu życiowego
  • Testowanie uaktualnienia
    • Testowanie środowiska programistycznego
    • Dokładna kopia danych produkcyjnych
    • Replika
    • Narzędzia
  • Uaktualnienie na dużą skalę
  • Podsumowanie

Dodatek B. MySQL w Kubernetesie

  • Przygotowanie zasobów za pomocą Kubernetesa
    • Staranny wybór celu
    • Wybór płaszczyzny kontrolnej
    • Pozostałe szczegóły
  • Podsumowanie
  • Titel: Wysoko wydajne MySQL. Sprawdzone strategie działania na dużą skalę. Wydanie IV
  • Autor: Silvia Botros, Jeremy Tinley
  • Originaler Titel: High Performance MySQL: Proven Strategies for Operating at Scale, 4th Edition
  • Übersetzung: Robert Górczyński
  • ISBN: 978-83-283-9295-3, 9788328392953
  • Veröffentlichungsdatum: 2022-11-15
  • Format: E-book
  • Artikelkennung: wywym4
  • Verleger: Helion