Heim  >  Artikel  >  Datenbank  >  Ausführliche Erklärung der chronischen Krankheiten von MySql

Ausführliche Erklärung der chronischen Krankheiten von MySql

藏色散人
藏色散人nach vorne
2021-09-17 16:50:291552Durchsuche

1. Problem mit dem Standard-Codierungssatz

Wenn Sie Front-End-Daten anzeigen, fragen Sie alle ab, wählen Sie * aus t_news aus, um alle Inhalte zu finden. Dann funktioniert es bei der Parametrisierung von Abfragen nicht. Zum Beispiel:

Wählen Sie * aus t_news, wo Titel wie „%Source Code Education%“ gefunden wurden;

Wählen Sie * aus t_news, wobei die ID = 1 ist. 1 Datenelement wurde gefunden.

Achten Sie auf die rot markierten Felder, nachdem ich sie geändert habe. Sie waren ursprünglich lateinisch1.

Lösung:

Die Konfigurationsdatei von MySQL unter Windows ist my.ini, die sich normalerweise im Stammverzeichnis des Installationsverzeichnisses befindet.

Die Konfigurationsdatei von MySQL unter Linux ist my.cnf, die normalerweise in /etc/my.cnf, /etc/mysql/my.cnf abgelegt wird. Wenn Sie es nicht finden können, können Sie es mit dem Befehl „find“ finden.

Öffnen Sie my.ini/my.cnf und ändern Sie die folgenden beiden Felder.

Ps: Sie müssen MySQL neu starten, nachdem Sie die Konfigurationsdatei geändert haben.

2. Daten werden nicht zurückgesetzt

Während der Programmierung konfiguriert Spring Transaktionen, aber wenn eine Ausnahme auftritt, ändern sich die Daten in der Datenbank trotzdem. Nachdem wir bestätigt haben, dass es keine Probleme mit der Transaktions- und Codekonfiguration gibt, erwägen wir die Möglichkeit einer Spezialisierung der Datenbank. Wir verwenden das Tool „Navicat“, um die Tabelle zu entwerfen. In der Spalte „Optionen“ stellen wir fest, dass die von der Tabelle verwendete Speicher-Engine MyISAM ist.

MyISAM unterstützt keine Transaktionen, führt zu einem unvollständigen Rollback und ist nicht atomar.

Ändern Sie MyISAM zu InnoDB.

In der MySQL-Konfigurationsdatei (my.ini) gibt es auch eine Standardspeicher-Engine. Wenn beim Erstellen der Tabelle keine spezielle Anweisung vorhanden ist, wird die Standardspeicher-Engine verwendet.

3. Optimieren Sie den Import großer Datenmengen

Bei unserer Arbeit werden wir unweigerlich auf die Situation stoßen, große Datenmengen zu importieren. Sie müssen beispielsweise zuvor gesicherte Daten abfragen, echte Daten lokal zum Testen importieren, regelmäßig Daten in eine Sicherungsdatenbank importieren und andere Geschäftsszenarien.

MySQL bietet die Importmethode zum Laden von Daten in die Datei. Eine falsche Konfiguration führt jedoch auch zu einer langsamen Importgeschwindigkeit.

Lösung:

Erhöhen Sie den folgenden Parameterwert, normalerweise 80 % des physischen Speichers. Aber 32-Bit-Systeme werden auf 2-3,5G beschränkt sein.

4. Aktivieren Sie die benutzerdefinierte Funktionsfunktion (Cloud-Datenbank).

Wenn wir den Code anderer Leute ausführen oder den Server übertragen, kann es vorkommen, dass zuvor von der Datenbank definierte Funktionen nicht verwendet werden können. Insbesondere bei Datenbanken ist die Funktionsfunktion standardmäßig nicht aktiviert, was dazu führt, dass die Funktion nicht ausgeführt wird.

Zuerst prüfen wir, ob die Funktion aktiviert ist. Wie unten gezeigt:

Die benutzerdefinierte Funktion ist hier standardmäßig deaktiviert.

Lösung: Verwenden Sie „set global log_bin_trust_function_creators = 1;“, um benutzerdefinierte Funktionsfunktionen zu aktivieren.

Erneut abfragen:

Aber diese Methode ist nur eine vorübergehende Lösung. Nach dem Neustart von MySQL ist die Funktion standardmäßig deaktiviert.

Um die benutzerdefinierte Funktion dauerhaft zu aktivieren, müssen Sie „log-bin-trust-function-creators=1“ zur Konfigurationsdatei hinzufügen.

5. Problem mit der Groß-/Kleinschreibung von Tabellennamen in einer Linux-Umgebung

In einer Linux-Systemumgebung wird bei MySQL-Tabellennamen standardmäßig die Groß-/Kleinschreibung beachtet. Wenn im Tabellennamen ein Großbuchstabe falsch eingegeben wird, kann die Abfrage manchmal nicht gefunden werden.

Lösung: Fügen Sie „lower_case_table_names=1“ am Ende der my.cnf-Konfigurationsdatei hinzu. Starten Sie dann MySQL neu.

"lower_case_table_names=1" bedeutet, die Eingabeanweisung in Kleinbuchstaben umzuwandeln und die Anweisung dann auszuführen.

Empfohlenes Lernen: „MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der chronischen Krankheiten von MySql. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen