Przejdź do treści

MySQL – optymalizacja i wydajność

O pracy MySQL DBA – przemyślenia administratora

Archiwa

Archiwa z daty Sierpień, 2011

Co to jest JOIN, jakie są jego rodzaje, jak działa i cała reszta teorii – pozwolę sobie pominąć. W internecie można znaleźć setki stron z informacjami o takich podstawach języka SQL. Dziś chciałbym zwrócić uwagę osobom piszącym zapytania na jedną, bardzo istotną kwestię dotyczącą JOINów. Domyślam się, że dla sporej części czytelników ten post nie będzie odkrywał nic nowego. W praktyce jednak często okazuje się, że sporo twórców aplikacji nie jest świadomych konsekwencji zapytań, które piszą. Liczę po cichu że choć kilka takich osób trafi na ten post i zrozumie dlaczego z wydajnością JOINów bywa różnie.

czytaj dalej…

MySQL umożliwia zakładanie indeksów na kilka kolumn. To oczywiście nic nowego. Tego typu indeks jest przydatny jeśli w zapytaniu mamy np. warunek WHERE z kilkoma kolumnami. W takiej sytuacji jesteśmy w stanie wykorzystać to, że kombinacja tych warunków pasuje do mniejszej rekordów niż każdy z tych warunków z osobna. Czy tak jest zawsze?
czytaj dalej…

Tabele tymczasowe kojarzą się głównie z przeciętną, żeby nie powiedzieć kiepską wydajnością zapytań. MySQL tworzy takie tabele w momencie gdy konieczne jest np. posortowanie wyników w sposób wykluczający użycie indeksów, jeśli wyniki są grupowane bez użycia indeksów, jeśli wykorzystywane są podzapytania i w wielu innych przypadkach. Tabele tymczasowe są tworzone przez MySQL automatycznie, istnieje też możliwość samodzielnego utworzenia takiej tabeli przez użytkownika. O tabelach generowanych przez MySQL, o ich cechach i o tym kiedy i dlaczego są tworzone pisałem już wcześniej. Dziś parę słów o tabelach “na żądanie”.
czytaj dalej…