table_cache
jest najbardziej użyteczną dyrektywą konfiguracyjną do zmiany. Za każdym razem, gdy MySQL uzyskuje dostęp do tabeli, ładuje ją do pamięci podręcznej. Jeśli masz dużą liczbę tabel, szybsze jest buforowanie ich.
Spójrz na zmienne serwera, uruchamiając:
show status;
i poszukaj zmiennej open_tables
. Jeśli jest to ta sama table_cache
wartość, co wartość i opened_tables
ciągle rośnie, musisz zwiększyć table_cache
wartość w pliku konfiguracyjnym. Aby znaleźć równowagę, eksperymentuj z tymi zmiennymi w godzinach szczytu. Chcesz go skonfigurować tak, aby w godzinach szczytu było go mało opened_tables
nawet po długim okresie bezczynności serwera.
key_buffer_size
jest również dobrą zmienną do eksperymentowania. Ta zmienna wpływa na rozmiar bufora indeksu, a powiększenie tej zmiennej zwiększa szybkość obsługi indeksu MySQL. Możesz zajrzeć na zmiennych z show variables;
komendą ponownie, i porównać key_read_requests
do key_reads
. Idealnie byłoby, gdyby stosunek między tymi dwiema zmiennymi był jak najniższy, i można to zrobić, zwiększając rozmiar key_buffer_size
. Jeśli ustawisz tę zmienną wyżej, będziesz mieć mniej zapisów i odczytów bezpośrednio na dysk iz dysku, co było twoim głównym zmartwieniem.
show status;
wyświetla zmienne stanu, takie jakOpen_tables
iOpened_tables
.table_cache
wygląda na to, że został usunięty w najnowszych wersjach MySQL.Musisz zmienić wartości w
my.cnf
pliku i zrestartować MySQL, chociaż możesz zmienić wiele z nich również podczas działania MySQL („SET GLOBAL VARIABLE = wartość ”).Prawdopodobnie będzie chciał spojrzeć na zwiększenie
key_buffer_size
,sort_buffer
,read_buffer
itable_cache
na początek i prawdopodobnieinnodb_buffer_pool_size
, jeśli masz żadnych tabel InnoDB. Niektóre z tych wartości można znacznie zwiększyć (nawet o dwa rzędy wielkości), szczególnie biorąc pod uwagę sprzęt. Domyślne ustawienia MySQL są wyjątkowo konserwatywne i wydają się być ukierunkowane na popularne komputery stacjonarne o mieszanym zastosowaniu sprzed około dziesięciu lat. Aha, i ostrzegamy, że wersja 32-bitowa będzie miała problemy z użyciem więcej niż 2 GB pamięci RAM.Więcej informacji i wskazówek znajdziesz w podręczniku MySQL .
źródło