CyberTek - the future at the present!
Google

Optymalizacja MySQL

Wysłany przez: admin (19 czerwca)

Nie mów teraz o tym, jak tworzyć tabele zoptymalizowane dać lepsze wyniki. Pamiętam tylko, że pola indeksowane znacznie poprawić czas realizacji. Będziemy rozmawiać zamiast niewielkich środków w celu poprawy wyników, że MySQL jest zazwyczaj instalowany w większości dystrybucji bez większych parametrów. Informacje odnoszą się do dystrybucji Linuksa, ale mogę być łatwo dostosowane do innych OS.

Konfiguracja jest zazwyczaj znaleźć w / etc / my.ini.

Eempio z my.ini:

[Mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-variable = klucz bufor = 64M
set-variable = max_user_connections = 100
set-variable = query_cache_size = 64M
# Domyślnie do korzystania starym formacie hasło pod kątem zgodności z mysql 3.x
# Klienci (mysqlclient10 korzystających z pakietu zgodności).
old_passwords = 1

] Mysql.server [
user = mysql
basedir = / var / lib

[Mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid

bufory: poprzez zwiększenie bufora z jednej bazy danych będzie się znacznie szybciej. Następnie ustawić buforów na podstawie ilości dostępnej pamięci, biorąc pod uwagę zużycie przez system operacyjny i inne aplikacje i usługi w użyciu. Jeśli przydzielić za dużo pamięci, choć nie są dostępne, mogą Państwo uruchomić na pogorszenie ogólnej wydajności systemu.

Wait_timeout: reprezentuje czasu upłynie, zanim połączenie zostanie automatycznie zamknięta z powodu braku aktywności mysql. liczba Dolna oznacza lepszą wydajność. W takim przypadku należy także grać ten rodzaj połączeń i ich żywotność szacuje się na lepsze kalibracji parametrów.

back_log: Kontrola ile równoczesnych połączeń może wytrzymać MySQL podczas tworzenia nowego wątku. Im niższa liczba, tym większa prędkość. Uwaga, łatwo nie miała wpływu na działanie poprzez ten parametr poprawnie, użyj tylko wtedy, gdy jest to absolutnie konieczne.

Max_user_connections: określa maksymalną liczbę jednoczesnych połączeń dozwolonych dla użytkownika. Jest to bardzo przydatne w systemach, w których MySQL ma dostęp do tego samego serwera wielu użytkowników jednocześnie.

Delayed_queue_size: liczbę wierszy załączonym INSERT z opóźnieniem. Mniej będzie dołączony do wiersze, MySQL będzie szybszy.

Sort_buffer_size: Ustaw rozmiar bufora w celu wykonania klauzul ORDER BY i GROUP BY. Do najbardziej skutecznych zapytanie, powinny tego parametru na wartość większą niż 2m.

Table_cache: kontrola liczby otwartych tabel wszystkie posty, wzrost tej zmiennej, tabele ładowane jednocześnie zwiększenie wydajności MySQL jest o wiele szybszy. Uwagę na ten parametr, systemy operacyjne mają limit odnośniki do plików można otworzyć jednocześnie, jeśli przekracza ten limit może ponieść anomalii.

Thread_cache_size: ustawia liczbę wątku zachować w pamięci podręcznej. Funkcja ta sprawia, że korzystanie z nici się bardzo szybko.

Polecenie show Stan pomaga monitorować te zmienne w czasie rzeczywistym, które bardziej niż inne pomaga nam zrozumieć, jakie są najbardziej znaczące ulepszenia możemy:

  • Handler_read_first: ile razy pierwszy rekord został odczytany z indeksu w tabeli. Jeśli tak się dzieje często, to znaczy, że tabela nie została prawidłowo indeksowane.
  • Innodb_buffer_pool_wait_free: wskazuje, ile razy MySQL musi poczekać na stronach zaczerwienienie pamięci. Jeśli wartość jest duża, wielkości puli buforów nie została poprawnie skonfigurowana na kwotę poddane operacji zapisu przez serwer.
  • Key_reads: ile razy system dostępu do pliku bazy danych MySQL indeksów. To spowalnia prędkość wykonywania zapytania, więc jeśli ta wartość jest duża, to znaczy, że klucz Bufor jest zbyt mały i powinien zostać zwiększony.
  • Max_used_connections: określa maksymalną liczbę połączeń MySQL musiał być otwarte jednocześnie w ciągu ostatnich boot. Pierwszy to prawdziwy punkt odniesienia (pozwala określić maksymalną liczbę połączeń na serwer obsługuje), a drugi jest przedstawiony jako praktyczne analizator ruchu.
  • Open_tables: Wskazuje aktualną liczbę otwartych tabel. Wartość ta powinna być analizowany łącznie z wielkością pamięci podręcznej tabeli. Zwykle wielkości table_cache może być większa niż wartość tej zmiennej. Jeżeli wartość jest znacznie niższa niż table_cache open_tables, aby uniknąć problemów z wydajnością, powinny zmniejszyć rozmiar pamięci podręcznej. Jeżeli wartość open_tables jest bardzo wysoki, w pobliżu cache powinien następnie wzrost table_cache.
  • Select_full_join: liczbę pełnych dołączyć MySQL przeprowadzanych w celu spełnienia żądań klienta. Wysoka wartość wskazuje, że zamiast indeksów, MySQL został zmuszony do przeprowadzenia pełnego przyłączyć. Sugeruje to potrzebę silnej indeks tych tabel.
  • Slow_queries: Liczba zapytań, które miały więcej czasu niż zwykle do wykonania. Wysokiej wartości powinno prowadzić nas do analizy Slow Query Log ustalenie tego, co wolno w celu optymalizacji zapytań.
  • Threads_connected: łączna liczba klientów podłączonych do serwera w takiej chwili.
  • Created_tmp_disk_tables: Liczba tymczasowych tabel, które zostały utworzone na dysku zamiast z pamięci. Biorąc pod uwagę, że tabele dostępu do operacji na dysku jest zwykle nieco wolniej niż w pamięci zawartość zmiennej jest odwrotnie proporcjonalna do prędkości, przy której działa zapytania CREATE tabeli tymczasowej.
  • Uptime: Informuje, ile sekund usługa jest aktywna.
Opublikowano w: mysql , porady

Dodaj komentarz

Ochrona przed spamem przez WP Captcha-Free

Powered by Cybertek - Pomoc zdalna