weisuw
20.11.2013, 11:06:57
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
20.11.2013, 11:11:13
200 tysięcy to nie jest dużo

Masz pozakładane indeksy na pola po których robisz złączenie i po których filtrujesz?
weisuw
20.11.2013, 18:49:21
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 ? ).