Wydajna praca z MySQL. Efektywne i bezpieczne zarządzanie bazami danych - ebook
Wydajna praca z MySQL. Efektywne i bezpieczne zarządzanie bazami danych - ebook
Efektywny MySQL
To książka skierowana do programistów, którzy znają podstawy MySQL, choć niekoniecznie na zaawansowanym poziomie, i chcą zgłębić wiedzę na temat tej technologii, aby móc z niej korzystać w maksymalnie wydajny sposób. Stawia na naukę efektywności pracy - pokazuje i objaśnia rozwiązania pozwalające na szybkie i proste posługiwanie się relacyjnymi bazami danych. Co ważne, treść została zilustrowana wieloma przykładami dotyczącymi różnych elementów i mechanizmów MySQL, których zastosowanie umożliwia wysyłanie do bazy danych zoptymalizowanych zapytań.
Daniel Nichter prezentuje dobre praktyki, po które warto sięgać, aby tworzyć wydajny kod. Korzystając z wieloletniego doświadczenia w pracy z relacyjnymi bazami danych, podaje gotowe rozwiązania wraz z wyjaśnieniami umożliwiającymi wysyłanie nawet skomplikowanych zapytań przy minimalnym obciążeniu serwera. To cenne źródło wiedzy niezbędnej do szybkiej nauki praktycznego zastosowania MySQL.
W książce między innymi:
- przykłady kodu i jego zastosowania
- porady dotyczące tworzenia szybkich zapytań generujących jak najmniejsze obciążenie serwera
- opisy narzędzi i mechanizmów do diagnostyki i optymalizacji działania baz danych MySQL
Spis treści
Wprowadzenie
Rozdział 1. Czas udzielenia odpowiedzi na zapytanie
- Prawdziwa historia błędnie pojętej wydajności działania
- Gwiazda polarna
- Raport dotyczący zapytania
- Źródła
- Agregacja
- Raportowanie
- Analiza zapytania
- Wskaźniki zapytania
- Metadane i aplikacja
- Wartości względne
- Średnia, percentyle i maksimum
- Poprawienie czasu udzielenia odpowiedzi na zapytanie
- Bezpośrednia optymalizacja zapytania
- Pośrednia optymalizacja zapytania
- Kiedy optymalizować zapytania?
- Wydajność działania wpływa na klienta
- Przed wprowadzeniem i po wprowadzeniu zmiany w kodzie
- Raz w miesiącu
- Większa wydajność działania MySQL
- Podsumowanie
- Ćwiczenia praktyczne: identyfikacja wolno wykonywanych zapytań
Rozdział 2. Indeksy i indeksowanie
- Fałszywe tropy dotyczące wydajności działania
- Lepsze i szybsze komponenty komputera
- Dostrajanie serwera MySQL
- Indeksy MySQL - wprowadzenie
- Tabele InnoDB są indeksami
- Metody dostępu do tabeli
- Wymóg w postaci skrajnego lewego prefiksu
- EXPLAIN - plan wykonywania zapytania
- Klauzula WHERE
- Klauzula GROUP BY
- Klauzula ORDER BY
- Indeks pokrywający
- Złączenia tabel
- Indeksowanie - jak to wygląda z perspektywy serwera MySQL?
- Poznanie zapytania
- Zapytanie EXPLAIN
- Optymalizacja zapytania
- Wdrażanie i weryfikowanie
- To był dobry indeks, dopóki.
- Zmienione zapytania
- Nadmierne, powielone i nieużywane
- Wyjątkowa selektywność
- To pułapka (gdy MySQL wybiera inny indeks)
- Algorytmy złączania tabel
- Podsumowanie
- Ćwiczenia praktyczne: wyszukiwanie powielonych indeksów
Rozdział 3. Dane
- Trzy tajemnice
- Indeksy niekoniecznie okażą się pomocne
- Im mniej danych, tym lepiej
- Im mniej QPS, tym lepiej
- Reguła najmniejszej ilości danych
- Dostęp do danych
- Magazyn danych
- Usunięcie lub zarchiwizowanie danych
- Narzędzia
- Wielkość operacji hurtowej
- Rywalizacja o blokadę rekordu
- Pamięć masowa i czas
- Paradoks binarnego dziennika zdarzeń
- Podsumowanie
- Ćwiczenia praktyczne: audyt dostępu do danych zapytania
Rozdział 4. Wzorce dostępu
- MySQL nic nie robi
- Destabilizacja wydajności działania po osiągnięciu wartości granicznej
- Toyota i Ferrari
- Wzorce dostępu do danych
- Odczyt i zapis
- Przepustowość
- Wiek danych
- Model danych
- Izolacja transakcji
- Spójność odczytu
- Współbieżność
- Dostęp do rekordów
- Zbiór wynikowy
- Zmiany w aplikacji
- Audyt kodu
- Przekazywanie operacji odczytu
- Kolejkowanie operacji zapisu
- Partycjonowanie danych
- Nie używaj MySQL
- Lepsze i szybsze komponenty komputera
- Podsumowanie
- Ćwiczenia praktyczne: opisz wzorce dostępu
Rozdział 5. Sharding
- Dlaczego pojedyncza baza danych nie skaluje się zbyt dobrze?
- Obciążenie aplikacji
- Testy wydajności są syntetyczne
- Zapis
- Zmiana schematu
- Operacje
- Kamyki, nie głazy
- Sharding - krótkie wprowadzenie
- Klucz shardingu
- Strategie
- Wyzwania
- Alternatywy dla shardingu
- NewSQL
- Oprogramowanie pośredniczące
- Mikrousługi
- Nie używaj MySQL
- Podsumowanie
- Ćwiczenia praktyczne: plan czteroletni
Rozdział 6. Wskaźniki serwera
- Wydajność działania zapytania kontra wydajność działania serwera
- Normalna i stabilna - najlepsza baza danych to nudna baza danych
- Kluczowe wskaźniki wydajności działania
- Dziedzina wskaźników
- Czas udzielenia odpowiedzi
- Współczynniki
- Poziom użycia
- Oczekiwanie
- Błąd
- Wzorce dostępu
- Wskaźniki wewnętrzne
- Spektra
- Czas udzielenia odpowiedzi
- Błędy
- Zapytania
- Wątki i połączenia
- Obiekty tymczasowe
- Polecenia składowane
- Nieprawidłowe polecenie SELECT
- Przepustowość sieci
- Replikacja
- Wielkość danych
- InnoDB
- Monitorowanie i ostrzeganie
- Rozdzielczość
- Szukanie wiatru w polu (wartości progowe)
- Informowanie o ograniczeniach
- Przyczyna i skutek
- Podsumowanie
- Ćwiczenia praktyczne: analiza kluczowych wskaźników wydajności działania
- Ćwiczenia praktyczne: analiza wartości progowych i komunikatów ostrzeżeń
Rozdział 7. Opóźnienie replikacji
- Podstawy
- Źródło do repliki
- Zdarzenia binarnego dziennika zdarzeń
- Opóźnienie replikacji
- Podstawowe przyczyny opóźnienia replikacji
- Przepustowość transakcji
- Odtwarzanie po awarii
- Problemy z siecią
- Niebezpieczeństwo - utrata danych
- Replikacja asynchroniczna
- Replikacja półsynchroniczna
- Zmniejszenie opóźnienia replikacji - replikacja wielowątkowa
- Monitorowanie
- Czas odzyskiwania
- Podsumowanie
- Ćwiczenia praktyczne: monitorowanie opóźnienia krótszego niż 1 sekunda
Rozdział 8. Transakcje
- Nakładanie blokad na rekordy
- Blokada rekordu indeksu i następnego klucza
- Blokady luk
- Indeksy wtórne
- Blokada zamiaru wstawienia
- MVCC i dzienniki przywracania
- Wielkość listy historii
- Najczęściej pojawiające się problemy
- Ogromne transakcje (wielkość transakcji)
- Długo wykonywane transakcje
- Transakcje przeciągające się
- Transakcje porzucone
- Zgłaszanie problemów
- Aktywne transakcje - najnowsze
- Aktywne transakcje - podsumowanie
- Aktywna transakcja - historia
- Transakcje zatwierdzone - podsumowanie
- Podsumowanie
- Ćwiczenia praktyczne: ostrzeżenie dotyczące wielkości listy historii
- Ćwiczenia praktyczne: analiza blokad rekordów
Rozdział 9. Inne wyzwania
- Niespójność danych to ogromne zagrożenie
- Oddalanie się danych jest faktem, ale pozostaje niewidoczne
- Nie ufaj mapowaniu obiektowo-relacyjnemu
- Schematy zawsze się zmieniają
- MySQL rozszerza standard SQL
- Hałaśliwi sąsiedzi
- Aplikacja nie kończy elegancko pracy
- Wysoka wydajność działania MySQL jest trudna do osiągnięcia
- Ćwiczenia praktyczne: identyfikacja sposobów zabezpieczających przed niespójnością danych
- Ćwiczenia praktyczne: sprawdzenie pod kątem oddalania się danych
- Ćwiczenia praktyczne: chaos
Rozdział 10. MySQL w chmurze
- Zgodność
- Zarządzanie (DBA)
- Opóźnienie. sieci i pamięci masowej
- Wydajność działania to pieniądze
- Podsumowanie
- Ćwiczenia praktyczne: wypróbowanie MySQL w chmurze
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9291-5 |
Rozmiar pliku: | 5,9 MB |