Der er to ting, du kan gøre for at mindske virkningen af dette
MULIGHED #1:Forøg variablerne tmp_table_size og/eller max_heap_table_size
Disse muligheder vil styre, hvor stor en temp-tabel i hukommelsen kan være, før den anses for at være for stor, og derefter sider til disk som en midlertidig MyISAM-tabel. Jo større disse værdier er, jo mindre sandsynligt vil du få 'kopiering til tmp-tabel på disk'. Sørg for, at din server har nok RAM og max_connections er moderat konfigureret, hvis en enkelt DB-forbindelse skal bruge meget RAM til sine egne midlertidige tabeller.
MULIGHED #2:Brug en RAM-disk til tmp-tabeller
Du bør være i stand til at konfigurere en RAM-disk i Linux og derefter indstille tmpdir i mysql for at være den mappe, der har RAM-disken monteret.
Til at begynde med skal du konfigurere en RAM-disk i OS
Opret en mappe i Linux kaldet /var/tmpfs
mkdir /var/tmpfs
Tilføj derefter denne linje til /etc/fstab (for eksempel, hvis du vil have en 16 GB RAM-disk)
none /var/tmpfs tmpfs defaults,size=16g 1 2
og genstart serveren.
Bemærk:Det er muligt at lave en RAM-disk uden at genstarte. Bare husk stadig at tilføje den førnævnte linje til /etc/fstab for at få RAM-disken efter en servergenstart.
Nu til MySQL:
Tilføj denne linje i /etc/my.cnf
[mysqld]
tmpdir=/var/tmpfs
og genstart mysql.
MULIGHED #3:Få tmp-tabellen til RAM-disken ASAP (forudsat at du anvender OPTION #2 først)
Du ønsker måske at tvinge tmp-tabeller ind i RAM-disken så hurtigt som muligt, så MySQL ikke drejer sine hjul og migrerer store tmp-tabeller i hukommelsen til en RAM-disk. Bare tilføj dette til /etc/my.cnf:
[mysqld]
tmpdir=/var/tmpfs
tmp_table_size=2K
og genstart mysql. Dette vil få selv den mindste temp-tabel til at blive etableret lige på RAM-disken. Du kan med jævne mellemrum køre ls -l /var/tmpfs
at se vikarborde komme og gå.
Prøv det!!!
ADVARSEL
Hvis du ikke ser andet end midlertidige tabeller i /var/tmpfs 24/7, kan dette påvirke OS-funktionalitet/-ydeevne. For at sikre, at /var/tmpfs ikke bliver overbefolket, skal du prøve at justere dine forespørgsler. Når du gør det, skulle du se færre tmp-tabeller, der materialiseres i /var/tmpfs.