Ta strona stosuje pliki cookies. Poczytaj co to jest w polityka cookies

Kącik początkującego
Dobre programy - tutoriale
Programy biznes
Programowanie PHP

nauczycieli Optymalizacja bazy danych

     Skrypt za bardzo obciąża bazę danych - co zrobić? Optymalizacja bazy danych przychodzi z pomocą...

    W sytuacji, gdy nasza strona zdobywa coraz to większą popularność mogą pojawić się problemy związane ze zbyt dużym obciążeniem strony. O ile do czasu, gdy mało osób wchodziło na naszą stronę problem ten w zasadzie mógł nie występować i właściciel serwera mógł nie reagować.

Gdy jednak coraz to więcej osób wchodzi na naszą stronę oraz gdy baza znacząco się rozrasta, wtedy mogą pojawiać się dwa problemy. Pierwszy z nich jest taki, że baza od początku była nieoptymalna, jednak z powodu tego, że mało kto wchodził na naszą stronę serwer baz danych rzadko był eksploatowany. Teraz jednak z powodu dużej oglądalności staje się on obciążony i może powodować zwolnienie pracy całego serwera i wszystkich będących na nim hostowanych stron, które korzystają z bazy danych.

Drugi problem może wystąpić wówczas, gdy baza mocno się rozbudowuje a my korzystamy ze skomplikowanych zapytań, z którymi baza danych musi długo się męczyć. Przykładowo jest coraz to więcej produktów w bazie a my zaczynamy je sortować według tabelki, która nie ma ideksów, czyli np. produktów jest dziesiątki tysięcy i kategorii są setki. Teraz zadajemy bazie danych pytanie "wypisz wszystkie produkty z danej kategorii". Gdy nie mamy utworzonych indeksów dla kolumny "kategorie", wówczas baza danych musi przeszukać wszystkie produkty, by znaleźć sobie te, które są z tej kategorii.
Dobrym rozwiązaniem tego problemu jest utworzenie indeksu dla kolumny "kategorie". Wówczas gdy zadamy pytanie wypisania wszystkich produktów z pojedynczej kategorii, baza nie będzie musiała przeszukiwać całej tabeli lecz skorzysta z indeksu i szybko wypisze wszystkie żądane produkty bez zbytecznego obciążania serwera.

Jak dodać indeks do kolumny?

 phpmyadmin_13.jpg

 Dodać można w sposób dość prosty za pomocą PhpMyAdmina, gdzie wyświetlamy strukturę całej tabelki a następnie klikamy po prawej stronie na ikonce "Indeks" dla wybranego pola. Może to być np. "nazwa_produktu".

Po tej operacji zapytania dotyczące tej kolumny powinny działać dużo szybciej. Oczywiście przy małej liczbie danych w tabelce nie ma zbytnio sensu tworzyć indeksów. Dopiero gdy liczba produktów wzrośnie lub od razu przewidujemy, że potencjalnie wzrośnie możemy dodać indeks wcześniej, by później uniknąć problemów.


Zobacz inne:

copyright © Pcwiedza.pl