Warum ist die Verbindung zum MySQL-server so langsam?
Benutze ich JDBC, Verbindung zu MySQL. Wenn es am localhost:3306
ist alles OK.
Aber wenn ich meine Anwendung auf einem anderen computer im intranet, und verwenden Sie <Intranet-IP>:3306
eine Verbindung zu der MySQL-Datenbank, dauert es etwa 1 minute, um eine Verbindung zu MySQL erfolgreich. Was ist mit dieser?
InformationsquelleAutor MemoryLeak | 2009-08-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nun, es könnte ein DNS-problem. Sie können deaktivieren Sie die DNS-hostname-lookups durch starten
mysqld
mit der--skip-name-resolve
option in der Konfigurationsdatei.Lesen Sie hier weitere details: http://dev.mysql.com/doc/refman/5.0/en/host-cache.html
Nur um klar zu sein,
--skip-name-resolve
würde verwendet werden als Kommandozeilenparameter beim Start von mysql, in der Erwägung, dassskip-name-resolve
(ohne den doppelten Bindestrich vor) wäre in der Konfigurationsdatei.Folgen den Konventionen in der config-Datei sollte es sein
skip_name_resolve
, obwohl ich denke, mit Bindestrichen funktioniert es auchWenn Sie auf skip-name-resolve nicht für Sie arbeiten, könnte es nicht die Verbindung, verlangsamt Euch. In meinem Fall dachte ich, es war ein DNS-problem erschlagen, aber das hinzufügen von skip-name-resolve hat nicht funktioniert, auch CLI und Workbench ausgeführt, die Abfragen blitzschnell. Es stellte sich heraus, die person, die ich geerbt, den code aus dachte, es war eine gute Idee, zum ausführen einer anderen Abfrage innerhalb der while-Schleife, die Durchlaufen die 1200+ Ergebnisse. Die offenbar nicht geben einen merklichen Verzögerung, wenn der DB-server auf der gleichen Maschine, aber es funktioniert, wenn Sie die Arbeit mit einem remote-server.
Bis zum Ende meiner story (war das erreichen des Kommentar-Zeichen-limit): ersetzte ich die Abfrage mit einem LEFT JOIN in der Haupt-Abfrage und die Seite laden, sank von 40 Sekunden auf 0,5 Sekunden. Die Frage tauchte auf, weil ich brauchte, um vorübergehend den Zugriff auf die Produktions-Datenbank aus der Entwicklungsumgebung.
InformationsquelleAutor Davide Ungari
Den
--skip-name-resolve
funktionierte großartig für mich.Um Sie permanent zu machen, ich fügen Sie einfach diese Zeile am Ende der Datei
my.ini
im[mysql]
Abschnitt:- Und voilá! Transaktionen, jetzt Fliegen!
InformationsquelleAutor Balta Ruiz
War es für mich diese Lösung fand ich hier, Wenn IP6-Konnektivität aktiviert ist, die Verbindung zu "localhost" kann langsam sein, verwenden Sie stattdessen die ip-Adresse 127.0.0.1. Dieser arbeitete für mich.
meine mysql langsam zu schließen, problem wurde gelöst, von dieser Lösung
Danke! Dies löste ein problem, Frage ich gepostet. Wer wusste IPv6 würde Chaos mit neueren MySQL-Versionen so viel.
InformationsquelleAutor Matt
firewalls, Internet, routing etc etc verlangsamt die Verbindung.
Dann sollten Sie Ihre Datenbank auf einem intra-net statt. Halten Sie es lokal und hinter der großen firewall. Selbstverständlich können Sie die firewall-und security zwischen Computern. Ich würde empfehlen, dass Sie nicht setzen Sie Ihre mysql-Datenbank-Verbindung an das Internet ungefiltert auf diese Weise.
ah, ich sehe, Sie bearbeitet Ihre Frage 🙂 gut zu sehen, dass Sie eine Antwort auf Ihre Frage.
InformationsquelleAutor Makach