Heim >Datenbank >MySQL-Tutorial >MySQL-Studiennotizen (1)

MySQL-Studiennotizen (1)

黄舟
黄舟Original
2016-12-21 16:38:301107Durchsuche

Das Reich der Technik ist so faszinierend, als ich anfing, in der IT zu arbeiten, war ich von den verschiedenen Technologien fasziniert und verwirrt. Ich bin immer noch der Typ Mensch, der sein Wort hält, aber zum Glück habe ich ein bisschen Ausdauer, sodass ich von allem Möglichen ein bisschen bekommen habe. Aber diese allgegenwärtige Situation passt wirklich nicht zu meinem IQ. Ich habe nicht so viel Energie, um so viele Dinge zu lernen. Lernen Sie langsam, einige Technologien vorübergehend aufzugeben, und studieren Sie zunächst gründlich die Dinge, die Sie bei Ihrer Arbeit verwenden müssen. Wie MySQL usw. Für Dinge, die ich besonders mag, wie zum Beispiel Linux, ist es zu fortgeschritten und kompliziert. Ich möchte nicht aufgeben, deshalb werde ich Linux jeden Tag eine Stunde Zeit geben, um mich mit den Befehlen vertraut zu machen und schrittweise Fortschritte zu machen. Nachdem die verschiedenen Fähigkeiten, auf die ich mich zum Überleben verlasse, perfekter geworden sind, denke ich, dass ich viel Zeit für das Studium von Linux übrig habe.

Ich habe dies gelesen, während ich ein Buch mit dem Titel „MySQL Core Technology and Best Practices“ gelesen habe. Während ich lerne, schreibe ich alles Nützliche auf, wenn ich es sehe, sodass meine Notizen auf jeden Fall etwas unordentlich aussehen. Einige Wissenspunkte habe ich schon vorher gemeistert, deshalb werde ich vielleicht nicht darüber schreiben. Dies ist nur eine Notiz zum Selbststudium, Sie können also hier aufhören. Ich möchte Ihre Lernzeit nicht verschwenden.

InnoDB-Engine und MyISAM-Engine

MySQL ist eine relationale Datenbank. Die Speicher-Engines können mithilfe von Show-Engines angezeigt werden. Meine Version ist 5.6.26, um die Version anzuzeigen. MySQL 5.6.26 verfügt über 9 Speicher-Engines. Die gebräuchlichsten und klischeehaftesten sind MyISAM und InnoDB. Wenn es sich bei dem Geschäft um keine Transaktion handelt, sind die beiden Speicher-Engines ähnlich und es gibt keinen Unterschied in der Leistung. Wenn im Unternehmen die meisten ausgewählten Abfragen erforderlich sind, kann die MyISAM-Speicher-Engine verwendet werden. Wenn Sie Dinge benötigen, müssen Sie den InnoDB-Speicher verwenden.

MySQL-Sicherung

Um Dateninkonsistenzen während der Sicherung zu vermeiden, sind während der Datenbanksicherung keine Schreibvorgänge in die Datenbank zulässig.

Sie können Flush-Tabellen mit Lesesperre verwenden;

Scannen Sie nun die Tabellendaten im Speicher und stellen Sie sie in der Tabelle wieder her. Dann sperren Sie den Tisch ab. Kollegen erteilen Leserechte. Mit anderen Worten: Wenn die Datenbank gesichert wird, besteht weiterhin eine Leseberechtigung.

Warten Sie, bis der Datenbanksicherungsvorgang abgeschlossen ist, und entsperren Sie dann die Datenbank. Tabellen entsperren;

MySQL-Datentyp

Das Bild dieser Datentypstruktur im Buch ist ziemlich gut, aber ich habe online danach gesucht und es sah nicht gut aus. Ich könnte also genauso gut selbst eines zeichnen, es wird nicht lange dauern.

MySQL-Studiennotizen (1)

Ma Dan, mein Zeichenwerkzeug ist kaputt, ich fasse nur mein Wissen zusammen, warum sich die Mühe machen.

Der nächste Schritt ist Text, der schnell kommt und Aufwand spart.

Dezimaltypen werden in exakte Dezimaltypen und Gleitkomma-Dezimaltypen unterteilt.

Dezimaltypen umfassen exakte Dezimaltypen.

Gleitkomma-Dezimalzahl, einschließlich einfacher und doppelter Genauigkeit. (Ich weiß nicht, was das bedeutet. Wenn Sie interessiert sind, schauen Sie sich Baidu an. Die am häufigsten verwendete ist Dezimalzahl.) '

dezimal(Länge, Genauigkeit). Länge stellt die Gesamtlänge der Zahl dar und Präzision stellt die Länge nach dem Dezimalpunkt dar.

String-Typ von MySQL

MySQL unterstützt hauptsächlich sechs String-Typen: char, varchar, tinyintm, text, mediumtext, longtext.

Den String-Typ konnte ich nicht erkennen deutlich vorher. Viele Fehler gemacht. Nachdem ich das Buch gelesen und experimentiert hatte, verstand ich viel.

Der folgende Inhalt zitiert direkt Kapitel 3 von „MySQL-Kerntechnologie und Best Practices“.

char(n) ist ein String-Typ mit fester Länge, was bedeutet, dass er n Zeichen (nicht Bytes) Speicherplatz einnimmt. Der Maximalwert von n beträgt 255. Beispielsweise für das vereinfachte chinesische Zeichen Wenn Sie die GBK-Codierung festlegen, bedeutet char (255), dass 255 chinesische Zeichen gespeichert werden können und jedes chinesische Zeichen zwei Byte Speicherplatz belegt. Für eine Zeichenfolge im UTF8-Zeichensatz bedeutet char(255), dass 255 chinesische Zeichen gespeichert werden können und jedes chinesische Zeichen 3 Byte Speicherplatz belegt.

varchar(n) ist ein Zeichenfolgentyp variabler Länge, was bedeutet, dass der von einer solchen Zeichenfolge belegte Speicherplatz der von der Zeichenfolge selbst belegte Speicherplatz ist, unabhängig von n. Dies unterscheidet sich von char(n), das sich von char(n) unterscheidet. Beispielsweise bedeutet varchar(255) für die Zeichenfolge des vereinfachten chinesischen Zeichensatzes gbk, dass 255 chinesische Zeichen gespeichert werden können. Jedes chinesische Zeichen belegt zwei Byte Speicherplatz. Wenn diese Zeichenfolge beispielsweise nicht so viele chinesische Zeichen enthält und nur das Wort „中“ enthält, belegt varchar(255) nur ein Zeichen (2 Bytes) Speicherplatz, sofern kein anderer Overhead berücksichtigt wird. Und char(255) muss 255 Zeichen Speicherplatz belegen, auch wenn darin nur ein chinesisches Zeichen gespeichert ist.

Von verschiedenen Zeichentypen belegter Speicherplatz:

MySQL-Studiennotizen (1)


MySQL-Datumstyp

MySQL Unterstützt hauptsächlich 5 Datumstypen. Datum, Uhrzeit, Jahr, Datum/Uhrzeit, Zeitstempel.

Datumstyp. Das Format unterstützt Jahr, Monat und Tag. JJJJ—MM—TT;

Zeittyp. Stunden, Minuten und Sekunden. HH: II: SS.

Datetime ist eine Kombination aus Datum und Uhrzeit. Das sind Jahr, Monat und Tag. Stunden, Minuten und Sekunden vergingen.

Der Zeitstempel ähnelt der Datums- und Uhrzeitangabe.

Aber man kann beim Lernen nicht zu genau sein. Werfen wir einen Blick auf den Unterschied zwischen Zeitstempel und Datum/Uhrzeit.

stellt verschiedene Wertebereiche dar, und der Wertebereich von datetime ist viel größer als der Wertebereich von timestamp. Zeitstempel wird bis 2037 vorbei sein.

Wenn dem Zeitstempel kein Wert zugewiesen ist, ist der Wert dieses Feldes tatsächlich das aktuelle Datum und die aktuelle Uhrzeit des MySQL-Servers.

Für Datums- oder Uhrzeitangaben desselben Zeitstempeltyps. Unterschiedliche Verluste führen zu unterschiedlichen Ergebnissen. Mit dem MySQL-Befehl show varialbes like „time_zone“ werden die folgenden Informationen angezeigt.

MySQL-Studiennotizen (1)

Dieses SYSTEM bedeutet, dass die Systemzeit verwendet wird.

Wenn ein Datensatz mit Zeitstempeldaten geändert wird, werden die Zeitstempeldaten automatisch auf das aktuelle Datum und die aktuelle Uhrzeit des MySQL-Servers aktualisiert.

MySQL-Binärtyp

Ich sollte mich nicht mit binären Datentypen in MySQL-Datenbanken befassen, zumindest noch nicht. Ich denke, es reicht aus zu wissen, dass MySQL binäre Daten speichern kann. Kommen Sie bei Bedarf in Zukunft wieder zum Lernen zurück.

Einige Erkenntnisse:

(1) Wenn Sie die Anwendungsanforderungen (Wertebereich und Genauigkeit) erfüllen, versuchen Sie, kurze Datentypen zu verwenden.

(2) Je einfacher der Datentyp, desto besser.

(3) Versuchen Sie, präzise Dezimaltypen zu verwenden.

(4) Versuchen Sie, integrierte Datums- und Uhrzeitdatentypen zu verwenden, anstatt Zeichenfolgen zum Speichern von Datums- und Uhrzeitangaben zu verwenden.

(5) Versuchen Sie, Nullfelder zu vermeiden, und es wird empfohlen, Felder als Nicht-Null-Einschränkungen anzugeben. Dies liegt daran, dass es schwierig ist, Abfragen für Spalten mit Nullwerten in MySQL zu optimieren. Nullwerte machen Indexstatistiken und Vergleichsoptimierungsvorgänge komplizierter. Es wird empfohlen, anstelle von Null 0, einen Sonderwert oder eine leere Zeichenfolge zu verwenden.

Alle Artikel auf meinem Blog sind Originale. In einigen Artikeln werden möglicherweise relevante Informationen zitiert, die Quelle wurde jedoch klar angegeben. Fühlen Sie sich frei, den Artikel nachzudrucken und zu teilen, Sie müssen jedoch einen Link zu diesem Artikel und eine Urheberrechtserklärung hinzufügen.

Das Obige ist der Inhalt der MySQL-Studiennotizen (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn