Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Serwer Abuse, zbyt grube zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
weisuw
Witam, właściciel portalu nad którym pracowałem jakiś czas temu przeniósł go sobie na tańszy serwer (ovh). Problem pojawił się przy bazie danych. Po kilku tygodniach użytkowania właściciel dostał maila z informacją, że ze względu na to, że nastąpiły nadużycia baza danych została przeniesiona na słabszy serwer (nie muszę mówić, że teraz 3/4 portalu już działa jak chce). Jako logi nadużyć dostałem zapytania ze szkieletem:
SELECT (...) FROM `FOTOGRAFIA_ext` INNER JOIN aclable_ext ON (...) WHERE (...);

aclable_ext przechowuje uprawnienia, FOTOGRAFIA_ext - zdjecia. Problemem pewnie jest ilość wpisów (grubo ponad 200tysięcy już). Czy macie jakiś pomysł na optymalizację tych zapytań? Spotkaliście się wcześniej już z podobnym problemem?
vermis
200 tysięcy to nie jest dużo smile.gif
Masz pozakładane indeksy na pola po których robisz złączenie i po których filtrujesz?
weisuw
ok, dzięki za pomoc.Obie tabele to widoki, stąd cały problem X_x. Wiem już co zrobić. Dzięki bardzo!

Wybaczcie, że wprowadziłem w błąd. Jednak nadal nie wiem jak się z tym uporać. Mimo, że używam widoków to na każdej z używanych przeze mnie do filtrów / złączania kolumn są pozakładane indeksy :/. Jak dokładnie działają widoki? Ze źródeł które czytałem wynika, że jeśli tworzymy kolumnę `widok`.`z` na podstawie `tabela`.`coś` to zachowujemy indeksy z `tabela`? Jeśli to nie to sprawa jest grubsza. Bo jak to obejść? Zrezygnować z używania widoków i zastąpić je czymś innym (osobna tabela + triggery ? ).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.