Mysql
 sql >> Baza danych >  >> RDS >> Mysql

pomiń kopiowanie do tabeli tmp na dysku mysql

Są dwie rzeczy, które możesz zrobić, aby zmniejszyć ten wpływ

OPCJA #1 :Zwiększ zmienne tmp_table_size i/lub max_heap_table_size

Te opcje określają, jak duża może być tabela tymczasowa w pamięci, zanim zostanie uznana za zbyt dużą, a następnie strony na dysk jako tymczasowa tabela MyISAM. Im większe są te wartości, tym mniejsze prawdopodobieństwo 'kopiowania do tablicy tmp na dysku'. Upewnij się, że Twój serwer ma wystarczającą ilość pamięci RAM i max_connections jest umiarkowanie skonfigurowany, jeśli pojedyncze połączenie DB wymaga dużej ilości pamięci RAM dla własnych tabel tymczasowych.

OPCJA 2:Użyj dysku RAM dla tabel tmp

Powinieneś być w stanie skonfigurować dysk RAM w systemie Linux, a następnie ustawić tmpdir w mysql jako folder, w którym zamontowany jest dysk RAM.

Na początek skonfiguruj dysk RAM w systemie operacyjnym

Utwórz folder w systemie Linux o nazwie /var/tmpfs

mkdir /var/tmpfs

Następnie dodaj tę linię do /etc/fstab (na przykład, jeśli chcesz mieć dysk RAM o pojemności 16 GB)

none                    /var/tmpfs              tmpfs   defaults,size=16g        1 2

i zrestartuj serwer.

Uwaga:Możliwe jest utworzenie dysku RAM bez ponownego uruchamiania. Pamiętaj tylko, aby dodać wspomnianą linię do /etc/fstab, aby mieć dysk RAM po restarcie serwera.

Teraz dla MySQL:

Dodaj tę linię w /etc/my.cnf

[mysqld]
tmpdir=/var/tmpfs

i uruchom ponownie mysql.

OPCJA #3:Pobierz tabelę tmp do dysku RAM JAK NAJSZYBCIEJ (zakładając, że najpierw zastosujesz OPCJA #2)

Możesz chcieć zmusić tabele tmp do pamięci RAM-dysku tak szybko, jak to możliwe, aby MySQL nie kręcił się, migrując duże tabele tmp w pamięci do RAM-dysku. Po prostu dodaj to do /etc/my.cnf:

[mysqld]
tmpdir=/var/tmpfs
tmp_table_size=2K

i uruchom ponownie mysql. Spowoduje to, że nawet najmniejsza tabela temp zostanie utworzona bezpośrednio na dysku RAM. Możesz okresowo uruchamiać ls -l /var/tmpfs aby oglądać tymczasowe tabele przychodzące i odchodzące.

Wypróbuj !!!

OSTRZEŻENIE

Jeśli nie widzisz nic poza tabelami tymczasowymi w /var/tmpfs 24/7, może to wpłynąć na funkcjonalność/wydajność systemu operacyjnego. Aby upewnić się, że /var/tmpfs nie zostanie przepełniony, przyjrzyj się dostrojeniu zapytań. Gdy to zrobisz, powinieneś zobaczyć mniej tabel tmp materializujących się w /var/tmpfs.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie rekordów w jednej kolumnie bez zapętlania?

  2. Jak naprawić źle sformatowany JSON w PHP?

  3. Funkcja MySQL TAN() – zwraca tangens wartości w MySQL

  4. Czy 'IS DISTINCT FROM' to prawdziwy operator MySQL?

  5. Dlaczego null<>null=null w mysql