Optymalizacja bazy danych może dotyczyc etapu projektowania jak i pracy bazy.
Zyski można uzyskać na czynnościach związanych z
przeszukiwaniem bazy, odczytem z tabel i obliczeniami matematycznymi.
Dobra baza danych posiada następujące cechy i właściwości:
- Normalizacja bazy co najmniej do trzeciego stopnia normalizacji - dane sa przechowywane w wielu tabelach, a nie w jednej dużej.
- Indeksowanie, czyli stworzenie spisu, gdzie co jest. Proces ten powinien dotyczyć tylko ważnych kolumn tabeli, aby jej nie spowalniać.
- Optymalizacja zapytań SQL-a do bazy dotyczące SELECT, INSERT, UPDATE, JOIN. Na przykład polecenie SELECT * zastapić poleceniem SELECT nazwa_kolumny. Przy dużych bazach zysk czasowy jest znaczący. Dodatkowo należy stosować WHERE.
- Procedury składowane w bazie danych. Dodatkową możliwością dostępną w bazach MySQL, PostgreSQL, MS SQL, Oracle jest możliwość pisania procedur i funkcji, które są przechowywane i wykonywane w bazie i mają bezpośredni dostęp do danych.
- Denormalizacja dla części tabel stosowana przy bardzo dużej ilości zapytań. Można tego dokonać na dwa podstawowe sposoby:
- Przez zapis w nowo utworzonych kolumnach wartości wyliczonych na podstawie innych danych z bazy. Na przykład nowe koluny tabel forum dyskusyjnego, wątków, odpowiedzi na nim. Dane sa pogrupowane i serwis działa szybko.
- Przez zapis klucza obcego nie tylko w bezpośrednio powiązanej tabeli, ale także w sąsiednich tabelach.