Эффективная работа с MySQL Эффективное и безопасное управление базами данных
Товар
- 0 раз купили
- 5 оценка
- 2 осталось
- 2 отзыва
Доставка
Характеристики
Описание
Wydajna praca z MySQL Efektywne i bezpieczne zarządzanie bazami danych
Daniel Nichter
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
O autorze
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.
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
Гарантии
Гарантии
Мы работаем по договору оферты и предоставляем все необходимые документы.
Лёгкий возврат
Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.
Безопасная оплата
Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.