• Wydajna praca z MySQL. Efektywne i bezpieczne zarządzanie bazami danych

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ń.

Podtytuł Wydajna praca z MySQL. Efektywne i bezpieczne zarządzanie bazami danych
Tytuł oryginalny Efficient MySQL Performance: Best Practices and Techniques
Autor Daniel Nichter
Tłumaczenie Robert Górczyński
Rok wydania 2022
Oprawa Miękka
Format 165x235
Stron 328
Wydawnictwo Helion
89.00 67.64
Do końca promocji pozostało:
Najniższa cena z 30 dni przed promocją:
66.75
szt. Do przechowalni
Wysyłka w ciągu 24 godziny
ISBN 978-83-283-9290-8

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 książki
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

Daniel Nichter — administrator baz danych, od 15 lat specjalizuje się w optymalizacji działania MySQL. W firmie Percona stworzył liczne narzędzia usprawniające pracę programistów i administratorów, z których na szeroką skalę korzystają obecnie największe przedsiębiorstwa IT. Wielokrotny prelegent na konferencjach i laureat nagród programistycznych, w tym MySQL Community Award.

Nie ma jeszcze komentarzy ani ocen dla tego produktu.

Polub nas na Facebooku