Zoptymalizuj logiczny projekt
Poziom logiczny dotyczy struktury zapytania i samych tabel. Najpierw spróbuj to zmaksymalizować. Celem jest dostęp do jak najmniejszej ilości danych na poziomie logicznym.
- Miej najbardziej wydajne zapytania SQL
- Zaprojektuj schemat logiczny, który obsługuje potrzeby aplikacji (np. typ kolumn itp.)
- Zaprojektuj kompromis, aby obsługiwać niektóre przypadki użycia lepiej niż inne
- Ograniczenia relacyjne
- Normalizacja
Zoptymalizuj fizyczny projekt
Poziom fizyczny zajmuje się rozważaniami nielogicznymi, takimi jak typ indeksów, parametry tabel itp. Celem jest optymalizacja IO, która zawsze jest wąskim gardłem. Dostosuj każdy stół do swoich potrzeb. Mała tabelka może być załadowana na stałe do pamięci podręcznej DBMS, tabela z niską szybkością zapisu może mieć inne ustawienia niż tablica z dużą szybkością aktualizacji, aby zajmować mniej miejsca na dysku itp. W zależności od zapytań można zastosować inny indeks itp. denormalizować dane w sposób przezroczysty z widokami zmaterializowanymi itp.
- Parametry tabel (rozmiar alokacji itp.)
- Indeksy (łączone, typy itp.)
- Parametry systemowe (rozmiar pamięci podręcznej itp.)
- Partycjonowanie
- Denormalizacja
Spróbuj najpierw poprawić projekt logiczny, a następnie projekt fizyczny. (Granica między nimi jest jednak niewyraźna, więc możemy spierać się o moją kategoryzację).
Zoptymalizuj konserwację
Baza danych musi działać poprawnie, aby zachować maksymalną wydajność. Obejmuje to kilka czynności konserwacyjnych, które mogą mieć wpływ na wydajność, np.
- Aktualizuj statystyki
- Okresowo zmieniaj kolejność tabel krytycznych
- Konserwacja dysku
- Wszystkie rzeczy systemowe, aby mieć serwer, który się kołysze