Optymalizacja tabel w MySQL / Dorzucanie zadań do cron-a
2 02 2008Praktyczne porady jak przyspieszyć działanie bazy danych poprzez umieszczenie prostych zapytań do listy wykonywania w Cronie (każdy Linux) lub w Harmonogramie zadań Windows Xp.
Info jest dla mnie (gdybym zapomniał)
…oraz dla ludzi którzy zapoznali sie z artykułami na stronie “www.netcoffee.pl” :
“Nie duplikuj informacji w bazie”
http://www.netcoffee.pl/pogodzinach/2005/10/30/nie-duplikuj-informacji-w-bazie/
“Prędkość czy miejsce”
http://www.netcoffee.pl/pogodzinach/2005/10/30/predkosc-czy-miejsce/
oraz
“Optymalizacja bazy MySQL – część II”
http://www.netcoffee.pl/pogodzinach/2006/01/15/optymalizacja-bazy-mysql-cze
ae-ii/
Mirror umieszczam w załączniku.
Aby wykonać te czynności musimy być w posiadaniu konta shellowego na serwerze gdzie mamy bazę MYSQL-a.
A więc zaczynamy:
Na początku proponuje otworzyć jakiś plik w którym umieścimy nasze zapytania:
touch /etc/optymalizacja/mysql
Następnie edytujemy i tu umieszczamy zapytania np.
REPAIR TABLE `tabela1` , `tabela2` , `tabela3` , `tabela4` …itd;
OPTIMIZE TABLE `tabela1` , `tabela2` , `tabela3` , `tabela4` …itd;
Kolejnym krokiem będzie stworzenie kolejnego pliku
np:.
touch /etc/optymalizacja/wykonanie
Oczywiście nadajemy uprawnienia:
chmod 755 /etc/optymalizacja/wykonanie
Oraz edytujemy aby wpisać do niego:
mysql -v -v – -default-character-set UTF8 -D nazwa_bazy -u uzytkownik < /etc/optymalizacja/mysql > /etc/optymalizacja/wyniki.zapytania
Podałem w zapytaniu domyślny charset -zalecam zmienić zależnie od używanego kodowania.
Jeżeli natomiast chodzi o usera należy stworzyć go z prawami logowania z lokalnej maszyny (127.0.0.1), jest to chyba najlepsza opcja pod względem bezpieczeństwa.
Na koniec należy dodać do Cron-a
02 22 * * * /etc/optymalizacja/wykonanie
Wykonując to uzyskaliśmy efekt polegający na codziennym (o 2:22 w nocy ) czyszczeniu z nadmiarowości tabel serwera Mysql.










