Ada dua hal yang dapat Anda lakukan untuk mengurangi dampak ini
OPSI #1 :Tingkatkan variabel tmp_table_size dan/atau max_heap_table_size
Opsi ini akan mengatur seberapa besar tabel temp dalam memori sebelum dianggap terlalu besar dan kemudian halaman ke disk sebagai tabel MyISAM sementara. Semakin besar nilai ini, semakin kecil kemungkinan Anda akan mendapatkan 'menyalin ke tabel tmp di disk'. Harap pastikan server Anda memiliki RAM yang cukup dan koneksi_maks dikonfigurasi secara moderat jika koneksi DB tunggal membutuhkan banyak RAM untuk tabel temp-nya sendiri.
OPSI #2 :Gunakan disk RAM untuk tabel tmp
Anda harus dapat mengonfigurasi disk RAM di Linux dan kemudian mengatur tmpdir di mysql menjadi folder tempat disk RAM terpasang.
Sebagai permulaan, konfigurasikan disk RAM di OS
Buat folder di Linux bernama /var/tmpfs
mkdir /var/tmpfs
Selanjutnya, tambahkan baris ini ke /etc/fstab (misalnya, jika Anda menginginkan disk RAM 16GB)
none /var/tmpfs tmpfs defaults,size=16g 1 2
dan reboot server.
Catatan:Dimungkinkan untuk membuat disk RAM tanpa me-reboot. Ingatlah untuk tetap menambahkan baris yang disebutkan di atas ke /etc/fstab agar disk RAM setelah server di-boot ulang.
Sekarang untuk MySQL:
Tambahkan baris ini di /etc/my.cnf
[mysqld]
tmpdir=/var/tmpfs
dan mulai ulang mysql.
OPSI #3 :Dapatkan tabel tmp ke dalam Disk RAM ASAP (dengan asumsi Anda menerapkan OPSI #2 terlebih dahulu)
Anda mungkin ingin memaksa tabel tmp ke dalam disk RAM secepat mungkin sehingga MySQL tidak memutar rodanya dengan memindahkan tabel tmp besar dalam memori ke dalam disk RAM. Cukup tambahkan ini ke /etc/my.cnf:
[mysqld]
tmpdir=/var/tmpfs
tmp_table_size=2K
dan mulai ulang mysql. Ini akan menyebabkan tabel temp terkecil menjadi ada tepat di disk RAM. Anda dapat menjalankan ls -l /var/tmpfs
. secara berkala untuk melihat tabel sementara datang dan pergi.
Cobalah !!!
PERINGATAN
Jika Anda tidak melihat apa pun selain tabel temp di /var/tmpfs 24/7, ini dapat memengaruhi fungsionalitas/kinerja OS. Untuk memastikan /var/tmpfs tidak kelebihan populasi, lihat penyetelan kueri Anda. Setelah melakukannya, Anda akan melihat lebih sedikit tabel tmp yang muncul di /var/tmpfs.