Высокопроизводительный MySQL. Проверенные стратегии для крупномасштабных операций
Товар
- 0 раз купили
- 5 оценка
- 2 осталось
- 1 отзыв
Доставка
Характеристики
Описание
Wysoko wydajne MySQL. Sprawdzone strategie działania na dużą skalę. Wydanie IV
Jeremy Tinley, Silvia Botros
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ń!
O autorach
Silvia Botros jest architektem oprogramowania w Twilio. Brała udział w tworzeniu dużych aplikacji bazodanowych. Zajmowała się też projektowaniem i wdrażaniem magazynów danych w środowiskach produkcyjnych.
Jeremy Tinley jest starszym inżynierem w Etsy. Od ponad 20 lat zajmuje się bazami MySQL. Jest znany z umiejętności zapewniania swoim bazom danych dostępności, niezawodności i operacyjnej efektywności.
Spis treści:
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
Гарантии
Гарантии
Мы работаем по договору оферты и предоставляем все необходимые документы.
Лёгкий возврат
Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.
Безопасная оплата
Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.