Es gibt zwei Dinge, die Sie tun können, um die Auswirkungen dadurch zu verringern
OPTION #1 :Erhöhen Sie die Variablen tmp_table_size und/oder max_heap_table_size
Diese Optionen bestimmen, wie groß eine temporäre In-Memory-Tabelle sein kann, bevor sie als zu groß erachtet wird und dann als temporäre MyISAM-Tabelle auf die Festplatte ausgelagert wird. Je größer diese Werte sind, desto unwahrscheinlicher ist die Meldung „Kopieren in die tmp-Tabelle auf der Festplatte“. Bitte stellen Sie sicher, dass Ihr Server über genügend RAM und max_connections ist moderat konfiguriert, falls eine einzelne DB-Verbindung viel RAM für ihre eigenen temporären Tabellen benötigt.
OPTION #2 :Verwenden Sie eine RAM-Disk für tmp-Tabellen
Sie sollten in der Lage sein, eine RAM-Disk unter Linux zu konfigurieren und dann die tmpdir in mysql der Ordner, in dem die RAM-Disk gemountet ist.
Konfigurieren Sie zunächst eine RAM-Disk im Betriebssystem
Erstellen Sie unter Linux einen Ordner mit dem Namen /var/tmpfs
mkdir /var/tmpfs
Fügen Sie als Nächstes diese Zeile zu /etc/fstab hinzu (wenn Sie beispielsweise eine 16-GB-RAM-Festplatte wünschen)
none /var/tmpfs tmpfs defaults,size=16g 1 2
und starten Sie den Server neu.
Hinweis:Es ist möglich, eine RAM-Disk ohne Neustart zu erstellen. Denken Sie nur daran, die oben erwähnte Zeile zu /etc/fstab hinzuzufügen, um die RAM-Disk nach einem Server-Neustart zu haben.
Nun zu MySQL:
Fügen Sie diese Zeile in /etc/my.cnf
hinzu[mysqld]
tmpdir=/var/tmpfs
und mysql neu starten.
OPTION #3:Holen Sie sich die tmp-Tabelle so schnell wie möglich in die RAM-Disk (vorausgesetzt, Sie wenden zuerst OPTION #2 an)
Möglicherweise möchten Sie tmp-Tabellen so schnell wie möglich in die RAM-Disk zwingen, damit MySQL nicht seine Räder dreht, wenn große In-Memory-tmp-Tabellen in eine RAM-Disk migriert werden. Fügen Sie dies einfach zu /etc/my.cnf hinzu:
[mysqld]
tmpdir=/var/tmpfs
tmp_table_size=2K
und starten Sie mysql neu. Dadurch wird selbst die kleinste temporäre Tabelle direkt in der RAM-Disk erstellt. Sie könnten regelmäßig ls -l /var/tmpfs
ausführen temporäre Tische kommen und gehen zu sehen.
Probieren Sie es aus !!!
ACHTUNG
Wenn Sie rund um die Uhr nur temporäre Tabellen in /var/tmpfs sehen, kann dies die Funktionalität/Leistung des Betriebssystems beeinträchtigen. Um sicherzustellen, dass /var/tmpfs nicht überfüllt wird, sollten Sie Ihre Abfragen optimieren. Sobald Sie dies getan haben, sollten Sie weniger tmp-Tabellen in /var/tmpfs sehen.