1. Es muss die InnoDB-Speicher-Engine verwendet werden Es bietet eine bessere CPU- und IO-Leistung, bessere Sicherungs- und Tabellensperrmechanismen sowie eine verbesserte Statistik- und Debugging-Effizienz. Darüber hinaus unterstützt InnoDB als System eine Reihe wichtiger Funktionen, von denen die Transaktionsprotokollierung und die Zeilensperre die wichtigsten sind. Das Transaktionsprotokoll zeichnet die tatsächlichen Datenbanktransaktionen auf, aber – noch wichtiger – die Wiederherstellung und das Rollback nach einem Datenabsturz. Auf InooDB basierende IO kann einen sichereren Datenschutz und eine bessere Leistung bieten. Darüber hinaus kann durch die Sperrung auf Zeilenebene in den meisten Fällen eine höhere Parallelitätsleistung erreicht werden, da Benutzer nur die Daten sperren, die sie schreiben, und das Lesen von Daten nie blockiert wird. 2. Datentabellen und Datenfeldern müssen chinesische Kommentare hinzugefügt werden Für Neueinsteiger ist es in Zukunft einfacher, es zu verstehen und sich schneller damit vertraut zu machen, und es ist leichter lesbar. Gleichzeitig wird das Statusfeld mit Aufzählungswerten wie 0 für Löschen und 1 für Normal gekennzeichnet. 3. Der Zeichensatz UTF8mb4 muss verwendet werden UTF8 ist ein universeller Zeichensatz. MB4 ist eine Erweiterung von UTF8 und unterstützt neue Zeichen wie Emoji. 4. Verbieten Sie die Verwendung gespeicherter Prozeduren, Ansichten, Trigger, Ereignisse, Verknüpfungen usw. Bei hoch parallelen Big-Data-Internetdiensten besteht die architektonische Designidee darin, „die Datenbank-CPU freizugeben und die Berechnung auf die Serviceebene zu übertragen.“ Datenbanken sind gut für die Speicherung und Indizierung geeignet, und die CPU-Berechnung ist auf der Geschäftsebene sinnvoller. 5. Speichern Sie keine großen Dateien oder Fotos Wenn viele Fotos von Personen vorhanden sind, verlangsamt sich die Abfragegeschwindigkeit der Seiten erheblich. Früher wurde innerhalb von 1 Sekunde geantwortet, aber nach dem Hinzufügen des Fotofelds dauert die Antwort etwa 4 bis 5 Sekunden. 6. Die Tabelle muss einen Primärschlüssel haben, z. B. einen Auto-Increment-Primärschlüssel a) Durch Inkrementieren des Primärschlüssels und Schreiben von Datenzeilen kann die Einfügeleistung verbessert, eine Seitenaufteilung vermieden, die Tabellenfragmentierung verringert und die Speicherplatz- und Speichernutzung verbessert werden. 7. Fremdschlüssel sind verboten. Wenn Integritätsbeschränkungen für Fremdschlüssel bestehen, ist eine Anwendungskontrolle erforderlich. Fremdschlüssel verursachen eine Kopplung zwischen Tabellen. Aktualisierungs- und Löschvorgänge betreffen verwandte Tabellen, was die SQL-Leistung erheblich beeinträchtigt und sogar zu Deadlocks führen kann. 8. Das Feld muss als NOT NULL definiert sein und ein Standardwert muss angegeben werden a) Spalten mit Nullwerten machen Indizes/Indexstatistiken/Wertevergleiche komplizierter und für MySQL schwieriger zu optimieren. Beispiel: wobei „Name!“ = „nx“. Wenn Datensätze vorhanden sind, bei denen „Name“ Null ist, enthalten die Abfrageergebnisse keine Datensätze, bei denen „Name“ Null ist. 9. Verwenden Sie keine TEXT- und BLOB-Typen Dadurch wird mehr Festplatten- und Speicherplatz verschwendet. Unnötige Abfragen großer Felder eliminieren Hot Data, was zu einem starken Rückgang der Speichertrefferrate führt und die Datenbankleistung beeinträchtigt. 10. Verwenden Sie keine Dezimalzahlen zur Speicherung von Währungen Verwenden Sie ganze Zahlen, da es bei Dezimalzahlen leicht passieren kann, dass der Betrag nicht übereinstimmt. 11. Sie müssen varchar(20) verwenden, um Mobiltelefonnummern zu speichern a) Bei Ortsvorwahlen oder Ländervorwahlen kann +-() erscheinen 12. ENUM ist verboten, stattdessen kann TINYINT verwendet werden a) Das Hinzufügen neuer ENUM-Werte erfordert DDL-Operationen 13. Über das Indexdesign (1) Es wird empfohlen, die Anzahl der Indizes in einer einzelnen Tabelle auf weniger als 5 zu begrenzen. Mehr Indizes sind nicht immer besser! Indizes können die Effizienz steigern, aber auch verringern. Indizes können die Abfrageeffizienz steigern, sie können jedoch auch die Effizienz von Einfügungen und Aktualisierungen und in manchen Fällen sogar die Abfrageeffizienz verringern. Denn wenn der MySQL-Optimierer entscheidet, wie eine Abfrage optimiert werden soll, wertet er jeden verfügbaren Index anhand vereinheitlichter Informationen aus, um den besten Ausführungsplan zu generieren. Wenn viele Indizes gleichzeitig für Abfragen verwendet werden können, erhöht dies die Zeit, die der MySQL-Optimierer zum Generieren eines Ausführungsplans benötigt, und verringert auch die Abfrageleistung. (2) Erstellen Sie keine Indizes für Attribute, die sehr häufig aktualisiert werden und eine geringe Differenzierung aufweisen. a) Durch Updates wird der B+-Baum geändert und die Indizierung häufig aktualisierter Felder verringert die Datenbankleistung erheblich. (3) Bei der Erstellung eines zusammengesetzten Indexes müssen die Felder mit hoher Trennschärfe an den Anfang gestellt werden. Grund: Kann Daten effektiver filtern 14. Informationen zu SQL-Verwendungsspezifikationen (1) INSERT INTO t_xxx VALUES(xxx) ist nicht zulässig. Die einzufügenden Spaltenattribute müssen angegeben werden. Grund: Nach dem Hinzufügen oder Löschen von Feldern können leicht Programmfehler auftreten. (2) Es ist verboten, Funktionen oder Ausdrücke auf Attribute von WHERE-Bedingungen anzuwenden. Grund: SELECT uid FROM t_user WHERE from_unixtime(day)>='2019-10-09' führt zu einem vollständigen Tabellenscan. Die korrekte Schreibweise lautet: SELECT uid FROM t_user WHERE day>= unix_timestamp('2019-10-09 00:00:00') (3) Negative Anfragen und Fuzzy-Anfragen, die mit % beginnen, sind verboten Grund: (4) JOIN-Abfragen und Unterabfragen sind für große Tabellen verboten. Grund: Es werden temporäre Tabellen generiert, mehr Speicher und CPU verbraucht und die Datenbankleistung stark beeinträchtigt (5) ODER-Bedingungen sind verboten und müssen in IN-Abfragen geändert werden. Grund: OR-Abfragen in alten MySQL-Versionen können den Index nicht erreichen. Selbst wenn sie den Index erreichen können, warum sollte die Datenbank mehr CPU verbrauchen, um die Abfrageoptimierung zu implementieren? (6) Die Anwendung muss SQL-Ausnahmen erfassen und entsprechend behandeln Oben finden Sie den detaillierten Inhalt der Zusammenfassung der MySQL-Nutzungsspezifikationen. Weitere Informationen zu MySQL-Nutzungsspezifikationen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Codebeispiel für die Implementierung des Linux-Verzeichniswechsels
>>: Dieser Artikel hilft Ihnen, den Lebenszyklus in Vue zu verstehen
Dieser Artikel veranschaulicht anhand von Beispie...
1. Erstellen Sie ein neues UI-Projekt Zunächst ei...
1. Offizielle Website-Adresse Auf der offiziellen...
mysql-5.7.17-winx64 ist die neueste Version von M...
Bei Verwendung einer Oracle-Datenbank für Fuzzy-A...
1. Erstellen und Ausführen eines Containers docke...
Inhaltsverzeichnis 1. Plugins 2. Zwischenspiel 3....
Phänomen: Nach MySQL Version 5.7 ist der Standard...
Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...
Inhaltsverzeichnis Was ist Rract? Hintergrund Rea...
<br />Vielleicht sind Sie gerade in ein Unte...
In diesem Artikelbeispiel wird der spezifische Co...
(1) Jedes HTML-Tag hat ein Attribut style, das CS...
Inhaltsverzeichnis 1. Zähldaten gehen verloren Lö...
Ein allgemeines Entwicklungsbedürfnis besteht dar...