Book description
Poznaj zaawansowane techniki i nieznane mo?liwo?ci MySQL!
- Jak za pomoc? MySQL budowa? szybkie i niezawodne systemy?
- Jak przeprowadza? testy wydajno?ci?
- Jak optymalizowa? zaawansowane funkcje zapyta??
MySQL jest ci?gle udoskonalanym i rozbudowywanym oprogramowaniem. Stale zwi?ksza si? tak?e liczba jego u?ytkowników, w?ród których nie brak wielkich korporacji. Wynika to z niezawodno?ci i ogromnej, wci?? rosn?cej wydajno?ci tego systemu zarz?dzania. MySQL sprawdza si? tak?e w bardzo wymagaj?cych ?rodowiskach, na przyk?ad aplikacjach sieciowych, ze wzgl?du na du?? elastyczno?? i mo?liwo?ci, takie jak zdolno?? wczytywania silników magazynu danych jako rozszerze? w trakcie dzia?ania bazy.
Ksi??ka "Wysoko wydajne MySQL. Optymalizacja, archiwizacja, replikacja. Wydanie II" szczegó?owo prezentuje zaawansowane techniki, dzi?ki którym mo?na w pe?ni wykorzysta? ca?y potencja?, drzemi?cy w MySQL. Omówiono w niej praktyczne, bezpieczne i pozwalaj?ce na osi?gni?cie du?ej wydajno?ci sposoby skalowania aplikacji. Z tego przewodnika dowiesz si?, w jaki sposób projektowa? schematy, indeksy i zapytania. Poznasz tak?e zaawansowane funkcje MySQL, pozwalaj?ce na uzyskanie maksymalnej wydajno?ci. Nauczysz si? tak dostraja? serwer MySQL, system operacyjny oraz osprz?t komputerowy, aby wykorzystywa? pe?ni? ich mo?liwo?ci.
- Architektura MySQL
- Testy wydajno?ci i profilowanie
- Optymalizacja schematu i indeksowanie
- Optymalizacja wydajno?ci zapyta?
- Przechowywanie kodu
- Umieszczanie komentarzy w kodzie sk?adowym
- Konfiguracja serwera
- Dostrajanie i optymalizacja wyszukiwania pe?notekstowego
- Skalowalno?? i wysoka dost?pno??
- Wydajno?? aplikacji
- Kopia zapasowa i odzyskiwanie
- Interfejs SQL dla polece? spreparowanych
- Bezpiecze?stwo
Twórz doskonale dostrojone aplikacje MySQL
Table of contents
- Wysoko wydajne MySQL. Optymalizacja, archiwizacja, replikacja
- SPECIAL OFFER: Upgrade this ebook with O’Reilly
- Przedmowa
- Wprowadzenie
-
1. Architektura MySQL
- Architektura logiczna MySQL
- Kontrola współbieżności
- Transakcje
- Mechanizm Multiversion Concurrency Control
-
Silniki magazynu danych w MySQL
- Silnik MyISAM
- Silnik MyISAM Merge
- Silnik InnoDB
- Silnik Memory
- Silnik Archive
- Silnik CSV
- Silnik Federated
- Silnik Blackhole
- Silnik NDB Cluster
- Silnik Falcon
- Silnik solidDB
- Silnik PBXT (Primebase XT)
- Silnik magazynu danych Maria
- Inne silniki magazynu danych
- Wybór odpowiedniego silnika
- Zalecenia
- Przykłady praktyczne
- Podsumowanie silników magazynu danych
- Konwersja tabeli
-
2. Określanie wąskich gardeł: testy wydajności i profilowanie
- Dlaczego warto przeprowadzić testy wydajności?
- Strategie przeprowadzania testów wydajności
- Taktyki przeprowadzania testów wydajności
- Narzędzia do przeprowadzania testów wydajności
- Przykładowe testy wydajności
- Profilowanie
- Profilowanie systemu operacyjnego
-
3. Optymalizacja schematu i indeksowanie
- Wybór optymalnego rodzaju danych
- Podstawy indeksowania
- Strategie indeksowania w celu osiągnięcia maksymalnej wydajności
- Studium przypadku z zakresu indeksowania
-
Obsługa indeksu oraz tabeli
- Wyszukiwanie i naprawa uszkodzeń tabeli
- Uaktualnianie danych statystycznych indeksu
- Ograniczanie wielkości indeksu i fragmentacji danych
- Normalizacja i denormalizacja
- Wady i zalety znormalizowanego schematu
- Wady i zalety nieznormalizowanego schematu
- Połączenie schematu znormalizowanego i nieznormalizowanego
- Tabele bufora oraz podsumowania
- Przyspieszanie działania polecenia ALTER TABLE
- Modyfikacja jedynie pliku .frm
- Szybkie budowanie indeksu MyISAM
- Uwagi dotyczące silników magazynowania danych
-
4. Optymalizacja wydajności zapytań
- Podstawy powolnych zapytań: optymalizacja dostępu do danych
- Sposoby restrukturyzacji zapytań
- Podstawy wykonywania zapytań
- Ograniczenia optymalizatora zapytań MySQL
- Optymalizacja określonego rodzaju zapytań
- Zmienne zdefiniowane przez użytkownika
-
5. Zaawansowane funkcje MySQL
- Bufor zapytań MySQL
- Przechowywanie kodu wewnątrz MySQL
- Funkcje zdefiniowane przez użytkownika
-
System kodowania znaków i kolejność sortowania
- W jaki sposób MySQL używa systemu kodowania znaków?
- Wybór kodowania znaków oraz kolejności sortowania
- W jaki sposób kodowanie znaków i kolejność sortowania wpływają na zapytania?
- Wyszukiwanie pełnotekstowe
- Wyszukiwanie pełnotekstowe w języku naturalnym
- Wyszukiwanie pełnotekstowe typu Boolean
- Zmiany dotyczące wyszukiwania pełnotekstowego w MySQL 5.1 i nie tylko
- Koszty związane z wyszukiwaniem pełnotekstowym oraz pokonywanie ograniczeń
- Dostrajanie i optymalizacja wyszukiwania pełnotekstowego
- Ograniczenia klucza zewnętrznego
- Tabele Merge i partycjonowane
- Transakcje rozproszone (XA)
-
6. Optymalizacja konfiguracji serwera
- Podstawy konfiguracji
- Składnia, zasięg oraz dynamizm
- Ogólne dostrajanie
- Dostrajanie zachowania operacji I/O w MySQL
- Dostosowanie współbieżności MySQL
-
7. Optymalizacja systemu operacyjnego i osprzętu
- Co ogranicza wydajność MySQL?
-
W jaki sposób wybrać procesor dla MySQL?
- Co jest lepsze: szybszy procesor czy większa liczba procesorów?
- Architektura procesora
- Rozbudowa do wielu procesorów i rdzeni
- Zrównoważenie pamięci i zasobów dyskowych
- Losowe kontra sekwencyjne operacje I/O
- Buforowanie, odczyt i zapis
- Jaki zestaw roboczy jest odpowiedni dla Ciebie?
- Znalezienie efektywnego współczynnika pamięć-dysk
- Wybór dysków twardych
- Wybór osprzętu komputerowego dla serwera podległego
- Optymalizacja wydajności macierzy RAID
- Urządzenia Storage Area Network oraz Network Attached Storage
- Używanie woluminów składających się z wielu dysków
- Stan systemu operacyjnego
-
8. Replikacja
- Ogólny opis replikacji
- Konfiguracja replikacji
- Szczegóły kryjące się za replikacją
-
Topologie replikacji
- Serwer główny i wiele serwerów podległych
- Serwer główny-główny w trybie aktywny-aktywny
- Serwer główny-główny w trybie aktywny-pasywny
- Układ serwer główny-główny razem z serwerami podległymi
- Ring
- Serwer główny, rozpraszający serwer główny oraz serwery podległe
- Drzewo lub piramida
- Własne rozwiązania dotyczące replikacji
- Replikacja i planowanie pojemności
- Administracja replikacją i jej obsługa
-
Problemy związane z replikacją i sposoby ich rozwiązywania
- Błędy spowodowane przez uszkodzenie lub utratę danych
- Używanie tabel nietransakcyjnych
- Łączenie tabel transakcyjnych i nietransakcyjnych
- Polecenia niedeterministyczne
- Różne silniki magazynu danych w serwerze głównym i podległym
- Zmiana danych w serwerze podległym
- Nieunikalne identyfikatory serwerów
- Niezdefiniowane identyfikatory serwerów
- Zależności dotyczące niereplikowalnych danych
- Brakujące tabele tymczasowe
- Niereplikowanie wszystkich uaktualnień
- Zablokowanie treści spowodowane przez blokowanie poleceń SELECT w InnoDB
- Zapis do obu serwerów głównych w replikacji typu serwer główny-główny
- Ogromne opóźnienie replikacji
- Zbyt duże pakiety w serwerze głównym
- Ograniczona przepustowość replikacji
- Brak miejsca na dysku
- Ograniczenia replikacji
- Jak szybka jest replikacja?
-
9. Skalowalność i wysoka dostępność
- Terminologia
-
Skalowalność MySQL
- Planowanie skalowalności
- Poświęcenie czasu przed opracowaniem skalowalności
- Skalowanie pionowe
-
Skalowanie poziome
- Partycjonowanie funkcjonalne
- Sharding danych
- Wybór klucza partycjonowania
- Wykonywanie zapytań między serwerami
- Alokacja danych, serwerów i węzłów
- Alokacja stała
- Alokacja dynamiczna
- Alokacja jawna
- Ponowne balansowanie serwerów
- Generowanie globalnie unikalnych identyfikatorów
- Narzędzia służące do shardingu
- Skalowanie w dół
- Skalowanie poprzez klastry
- Równoważenie obciążenia
- Połączenie bezpośrednie
- Wprowadzenie pośrednika
- Równoważenie obciążenia za pomocą serwera głównego i wielu serwerów podległych
- Wysoka dostępność
- 10. Optymalizacja na poziomie aplikacji
-
11. Kopia zapasowa i odzyskiwanie
- Ogólny opis
- Wady i zalety rozwiązania
- Zarządzanie kopią zapasową binarnych dzienników zdarzeń i jej tworzenie
-
Tworzenie kopii zapasowej danych
- Tworzenie logicznej kopii zapasowej
-
Migawka systemu plików
- W jaki sposób działają migawki LVM?
- Przygotowania i konfiguracja
- Tworzenie, montowanie i usuwanie migawki LVM
- Migawki LVM służące do tworzenia kopii zapasowej w trybie online
- Wykonywanie kopii zapasowej InnoDB za pomocą migawek LVM i bez nakładania blokad
- Planowanie tworzenia kopii zapasowych za pomocą LVM
- Inne sposoby wykorzystania migawki i inne możliwości
- Odzyskiwanie z kopii zapasowej
- Szybkość tworzenia kopii zapasowej i odzyskiwania
- Narzędzia służące do obsługi kopii zapasowej
- Kopie zapasowe za pomocą skryptów
-
12. Bezpieczeństwo
- Terminologia
-
Podstawy dotyczące kont
- Prawa dostępu
- Tabele uprawnień
- W jaki sposób MySQL sprawdza uprawnienia?
- Dodawanie, usuwanie i przeglądanie uprawnień
- Konfiguracja uprawnień w MySQL
- Zmiany w zakresie uprawnień w MySQL 4.1
- Zmiany w zakresie uprawnień w MySQL 5.0
- Uprawnienia i wydajność
-
Najczęściej występujące problemy i sposoby ich rozwiązywania
- Nawiązywanie połączenia poprzez localhost kontra 127.0.0.1
- Bezpieczne używanie tabel tymczasowych
- Wyłączenie dostępu niewymagającego użycia hasła
- Wyłączenie użytkowników anonimowych
- Należy pamiętać o ujmowaniu w oddzielne apostrofy nazw serwerów
- Nie używaj ponownie tych samych nazw użytkowników
- Nadanie uprawnienia SELECT pozwala na wykonywanie polecenia SHOW CREATE TABLE
- Nie nadawaj uprawnień bazie danych mysql
- Nie nadawaj dowolnie uprawnienia SUPER
- Nadawanie uprawnień bazom danych przy użyciu znaków wieloznacznych
- Odbieranie określonych uprawnień
- Użytkownik może nawiązać połączenie nawet po wydaniu polecenia REVOKE
- Kiedy nie można nadać lub odebrać uprawnień?
- Uprawnienia niewidzialne
- Zbędne uprawnienia
- Bezpieczeństwo systemu operacyjnego
- Bezpieczeństwo sieciowe
- Szyfrowanie danych
- MySQL w środowisku chroot
-
13. Stan serwera MySQL
- Zmienne systemowe
-
SHOW STATUS
- Dane statystyczne dotyczące wątku i połączenia
- Stan dzienników binarnych
- Polecenia liczników
- Tymczasowe pliki i tabele
- Operacje Handler
- Bufor kluczy MyISAM
- Deskryptory plików
- Bufor zapytań
- Rodzaje polecenia SELECT
- Sortowanie
- Blokowanie tabeli
- Secure Sockets Layer (SSL)
- Zmienne charakterystyczne dla InnoDB
- Zmienne charakterystyczne dla rozszerzenia
- Różne zmienne
- SHOW INNODB STATUS
- SHOW PROCESSLIST
- SHOW MUTEX STATUS
- Stan replikacji
- INFORMATION_SCHEMA
- 14. Narzędzia zapewniające wysoką wydajność
- A. Przesyłanie dużych plików
- B. Używanie polecenia EXPLAIN
- C. Używanie silnika Sphinx w MySQL
- D. Usuwanie błędów w blokadach
- E. O autorach
- Indeks
- Kolofon
- SPECIAL OFFER: Upgrade this ebook with O’Reilly
- Copyright
Product information
- Title: Wysoko wydajne MySQL. Optymalizacja, archiwizacja, replikacja. Wydanie II
- Author(s):
- Release date: July 2012
- Publisher(s): Helion
- ISBN: 9781457171482
You might also like
book
MySQL. Mechanizmy wewnętrzne bazy danych
Dzięki tej ksišżce poznasz kod ?ródłowy i sposób działania tego narzędzia. Autor, przez wiele lat pracujšcy …
book
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IV
Wykorzystaj potencja? PHP oraz MySQL w Twoich serwisach WWW! Jak zainstalowa? i uruchomi? w?asny serwer WWW? …
book
SQL. Sztuka programowania
Wypowiedz wojn? niewydajnym bazom danych Projektowanie wydajnych baz danych Uwzgl?dnianie kontekstu dzia?ania aplikacji bazodanowych Poprawa szybko?ci …
book
Mistrz PHP. Pisz nowoczesny kod
Dzięki lekturze tej publikacji przemienisz się ze sprawnego programisty w pewnego siebie inżyniera — stosującego najlepsze …