Optymalizacja baz danych

Krzysztof Jagielski
05.09.2015

Jedną z podstawowych rzeczy przy tworzeniu aplikacji jest dobre zaprojektowanie bazy danych. Gry via browser trzymają w nich wszelkie informacje o przedmiotach, potworach, graczach. Przy większych ilościach użytkowników cała baza danych może sporo spowolnić całą aplikację. Jedyną metodą jest optymalizacja. Postaram się przedstawić podstawowe zasady, które pomogą wam przyśpieszyć waszą bazę danych.

Stosuj INDEXy
Znacznie przyśpieszają wyszukiwanie danych, jednak spowalniają dodawanie, spowodowane jest to że do nowych danych trzeba przypisać klucze. Częściej pobieramy informacje dlatego używanie INDEXów jest uzasadnione

Używaj UPDATE na rzecz INSERT
Edycja wierszy jest szybsza nisz dodawanie.

Używaj odpowiednich typów pól
W polach gdzie przechowujesz tylko liczby używaj pól typu: INT, TINYINT, SMALINT itp.
Jeżeli przechowywać będziesz dane które będą mieć zawsze tą samą długość, np. hasło za haszowane w md5 używaj pola typu CHAR.

Jak jest możliwość używaj wartości cyfrowych.
Zamiast Tak/Nie używaj 0/1 dane liczbowe są szybciej przetwarzane.

Usuwaj nie aktywnych graczy.
Nie tylko samych graczy, ale wszelkie ich dane, wiadomości, przedmioty itp.

Pobieraj tylko potrzebne dane.
Także w odpowiedniej kolejności, jeżeli pola w bazie kolejno to id, name, hp, atk i potrzebujesz tylko id i name twe zapytanie powinno wyglądać:
SELECT `id`, `name` FROM `nazwa_tabeli`, a nie:
SELECT * FROM `nazwa_tabeli` czy,
SELECT `name`, `id` FROM `nazwa_tabeli`

Staraj się pobierać jak najrzadziej i najmniej danych.

Używaj LIMIT do ograniczenia ilości pobieranych danych
Spotkałem się że początkujący programiści pobierają wszystkie dane z tabeli np. 30 rekordów, a potrzebują tylko 5. Do wyświetlenia tych 5 używają pętli. Ten sposób jest zły na małych bazach nie zauważymy różnicy, jednak gdy przyjdzie nam pracować na większej ilość różnica będzie znacząca.

Trzymając się tych zasad nasza baza danych powinna działać znacznie szybciej.

Zgłoś swój pomysł na artykuł

Więcej w tym dziale Zobacz wszystkie