Mysql
 sql >> база данни >  >> RDS >> Mysql

пропуснете копирането в таблицата tmp на диска mysql

Има две неща, които можете да направите, за да намалите въздействието от това

ОПЦИЯ №1:Увеличете променливите tmp_table_size и/или max_heap_table_size

Тези опции ще управляват колко голяма може да бъде дадена временна таблица в паметта, преди да бъде счетена за твърде голяма и след това страници на диск като временна таблица MyISAM. Колкото по-големи са тези стойности, толкова по-малка е вероятността да получите „копиране в tmp таблица на диска“. Моля, уверете се, че вашият сървър има достатъчно RAM и max_connections е умерено конфигуриран, ако една връзка с DB се нуждае от много RAM за собствените си временни таблици.

ОПЦИЯ №2:Използвайте RAM диск за tmp таблици

Трябва да можете да конфигурирате RAM диск в Linux и след това да зададете tmpdir в mysql да бъде папката, в която е монтиран RAM дискът.

За начало конфигурирайте RAM диск в операционната система

Създайте папка в Linux, наречена /var/tmpfs

mkdir /var/tmpfs

След това добавете този ред към /etc/fstab (например, ако искате 16GB RAM диск)

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

и рестартирайте сървъра.

Забележка:Възможно е да се направи RAM диск без рестартиране. Само не забравяйте да добавите гореспоменатия ред към /etc/fstab, за да имате RAM диска след рестартиране на сървъра.

Сега за MySQL:

Добавете този ред в /etc/my.cnf

[mysqld]
tmpdir=/var/tmpfs

и рестартирайте mysql.

ОПЦИЯ №3:Вземете tmp таблица в RAM диска възможно най-скоро (ако приемем, че първо приложите ОПЦИЯ №2)

Може да искате да принудите tmp таблици в RAM диска възможно най-бързо, така че MySQL да не върти колелата си, мигрирайки големи tmp таблици в паметта в RAM диск. Просто добавете това към /etc/my.cnf:

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

и рестартирайте mysql. Това ще доведе до появата на дори най-малката временна таблица точно в RAM диска. Можете периодично да изпълнявате ls -l /var/tmpfs за да гледате как временните маси идват и си отиват.

Опитайте !!!

ПРЕДУПРЕЖДЕНИЕ

Ако не виждате нищо освен временни таблици в /var/tmpfs 24/7, това може да повлияе на функционалността/производителността на ОС. За да се уверите, че /var/tmpfs не се пренаселява, разгледайте настройките на вашите заявки. След като го направите, трябва да видите по-малко tmp таблици, които се материализират в /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. Съставен FULLTEXT индекс в MySQL

  2. Код на грешка 1292 - Отсечена неправилна DOUBLE стойност - Mysql

  3. вмъкнете Unicode символ в бази данни

  4. Импортирайте .frm и .opt файлове в MySQL

  5. Може ли MySQL заявка да превърне редовете в колони?