Erste Schritte mit MySQL - Konzepte

Erste Schritte mit MySQL - Konzepte

1. Was ist das?

MySQL ist das beliebteste relationale Datenbankmanagementsystem. Im Hinblick auf Webanwendungen ist MySQL eine der besten RDBMS-Anwendungssoftwares (Relational Database Management System).

1.1 RDBMS

Funktionen von RDBMS (Relationales Datenbankmanagementsystem):

1. Daten erscheinen in Tabellenform

2. Jede Zeile ist ein Datensatzname

3. Jede Spalte ist das Datenfeld, das dem Datensatznamen entspricht

4. Viele Zeilen und Spalten bilden ein Formular

5. Mehrere Formulare bilden die Datenbank

1.2 MySQL-Datenbank

MySQL ist ein relationales Datenbankverwaltungssystem, das von der schwedischen Firma MySQL AB entwickelt wurde und derzeit im Besitz von Oracle ist. MySQL ist ein relationales Datenbankverwaltungssystem, das Daten in verschiedenen Tabellen speichert, anstatt alle Daten in einem großen Lager abzulegen, was die Geschwindigkeit und Flexibilität erhöht.

  • MySQL ist Open Source und derzeit ein Produkt von Oracle.
  • MySQL unterstützt sehr große Datenbanken. Kann große Datenbanken mit mehreren zehn Millionen Datensätzen verarbeiten.
  • MySQL verwendet das Standardformat der SQL-Datensprache.
  • MySQL kann auf mehreren Systemen ausgeführt werden und unterstützt mehrere Sprachen. Zu diesen Programmiersprachen gehören unter anderem C, C++, Python, Java, Perl, PHP, Eiffel, Ruby und Tcl.
  • MySQL bietet gute Unterstützung für PHP, die derzeit beliebteste Webentwicklungssprache.
  • MySQL unterstützt große Datenbanken und Data Warehouses mit 50 Millionen Datensätzen. Die maximale Tabellendateigröße, die von einem 32-Bit-System unterstützt wird, beträgt 4 GB, und die maximale Tabellendateigröße, die von einem 64-Bit-System unterstützt wird, beträgt 8 TB.
  • MySQL ist anpassbar und verwendet das GPL-Protokoll. Sie können den Quellcode ändern, um Ihr eigenes MySQL-System zu entwickeln.

2. Arbeitsmechanismus

2.1 Gesamtarchitekturdiagramm (C/S-Architektur)

  • Kunde:

Ein allgemeines Toolkit, das die Verbindung zu einem MySQL-Server ermöglicht

  • Server:

MySQL-Instanz, der MySQL-Serverprozess, der tatsächlich Datenspeicher- und Datenverarbeitungsfunktionen bereitstellt

  • mysqld:

Der MySQL-Server-Daemon läuft im Hintergrund. Es verwaltet Clientanfragen. mysqld ist ein Multithread-Prozess, der die Verbindung mehrerer Sitzungen zulässt, auf Ports lauscht und MySQL-Instanzen verwaltet.

  • MySQL-Speicherzuweisung:

Der von MySQL benötigte Speicherplatz ist dynamisch, beispielsweise innodb_buffer_pool_size (ab 5.7.5), key_buffer_size. Jede Sitzung hat einen einzigartigen Ausführungsplan und wir können Datensätze nur innerhalb desselben Sitzungsumfangs teilen.

  • SITZUNG

Jeder Clientverbindung wird eine Sitzung zugewiesen, die dynamisch zugewiesen und wiederverwendet wird. Wird zur Abfrageverarbeitung verwendet. Jede Sitzung verfügt gleichzeitig über einen Puffer. Jede Sitzung wird als Thread ausgeführt

  • Parser

Erkennen Sie die SQL-Anweisungssyntax und generieren Sie SQL_ID für jede SQL-Anweisung. In dieser Phase erfolgt auch die Benutzerauthentifizierung.

  • Optimierer

Erstellen Sie einen effizienten Ausführungsplan (abhängig von der Speicher-Engine). Die Abfrage wird neu geschrieben. Beispiel: InnoDB verfügt über einen gemeinsam genutzten Puffer, sodass der Optimierer zuerst die vorab zwischengespeicherten Daten extrahiert. Durch die Verwendung des Tabellenstatistik-Optimierers wird ein Ausführungsplan für die SQL-Abfrage generiert. In dieser Phase werden auch die Benutzerberechtigungen überprüft.

  • Metadaten-Cache

Zwischenspeichern von Objektmetadaten und Statistiken

  • Abfragecache

Teilen Sie dieselbe Abfrageanweisung im Speicher. Wenn die exakt gleiche Abfrage den Cache erreicht, ruft der MySQL-Server das Ergebnis direkt aus dem Cache ab. Der Cache wird zwischen Sitzungen gemeinsam genutzt, sodass ein für einen Client generierter Ergebnissatz von einem anderen Client verwendet werden kann. Der Abfragecache basiert auf SQL_ID. Das Schreiben von SELECT-Anweisungen in eine Ansicht ist ein gutes Beispiel für die Zwischenspeicherung von Abfragen.

  • Schlüsselcache

Cache-Tabellenindex. MySQL-Schlüssel sind Indizes. Wenn die Indexdatengröße klein ist, werden die Indexstruktur und die Blattknoten (die die Indexdaten speichern) zwischengespeichert. Wenn der Index groß ist, wird nur die Indexstruktur zwischengespeichert, die normalerweise von der MyISAM-Speicher-Engine verwendet wird

2.2 Netzwerkprotokoll

2.2.1 Kommunikationsprotokoll

Ab MySQL 5.7 gibt es fünf Typen, nämlich TCP/IP, TLS/SSL, Unix Sockets, Shared Memory und Named Pipes. Schauen wir uns die Unterschiede zwischen diesen fünf Typen an:

Weg Standardmäßig aktiviert Unterstützungssystem Unterstützt nur diese Maschine So schalten Sie es ein Parameterkonfiguration
TCP/IP Ja Alle Systeme NEIN --skip-networking=ja/nein --port--bind-address
TLS/SSL Ja Alle Systeme (basierend auf TCP/IP) NEIN –ssl=ja/nein --ssl-* Optionen
Unix-Sockets Ja Unix-ähnliche Systeme Ja --socket= zum Schließen --socket=Socket-Pfad
Gemeinsam genutzter Speicher NEIN Windows Ja –shared-memory=ein/aus. --shared-memory-base-name=
Benannte Pipes NEIN Windows NEIN --enable-named-pipe=ein/aus --socket=

2.2.2 Nachrichtenformat

Protokollheader:

Jeder Protokollheader hat 4 Bytes

- Paketdatenlänge:

Die ersten drei Bytes geben die Länge des Datenteils an (ohne Protokollheader). Die maximale Länge, die durch drei Bytes dargestellt werden kann, beträgt 16M-1 (2^24 - 1). Wenn der zu sendende Datenteil diese Länge überschreitet, muss er entpackt werden, wobei jede Länge von 16M-1 ein Paket darstellt. Wenn das empfangende Ende beim Datenempfang feststellt, dass die Paketlänge 16M-1 beträgt, bedeutet dies, dass weitere Daten folgen, bis das Datenpaket mit einer Länge von <16M-1 empfangen wird. Dies bedeutet, dass die Datenlänge des letzten Pakets 0 sein kann.

Seriennummer:

1 Byte, beginnend bei 0 und um eins erhöhen. Wenn ein neues SQL gesendet und die Datenbank erneut verbunden wird, wird der Wert auf 0 gelöscht (Funktion sql/Net_serv.cc: net_clear).

Datentyp:

Neben Ganzzahlen oder Zeichenfolgen mit fester Länge gibt es zahlreiche weitere Datentypen. (Speicherung und Zugriff auf Felddaten mit fester Länge: include/Mybyte_order.h: Wert intstore speichern, Wert abrufen: intkorr, Mehrbyte-Verarbeitung basiert auf Little-Endian-Priorität)

     1. Der Zugriff auf Integer mit variabler Länge auf diesen Datentyp erfolgt in der Funktion: sql-common/Pack.c: Integer speichern: net_store_length Integer lesen: net_field_length
        Wenn der Wert kleiner als 251 ist, speichern Sie den Wert direkt in einem Byte.
       Wenn 251 <= Wert < 2 ^ 16, verwenden Sie 3 Bytes zum Speichern, das erste Byte ist 252 und die anderen 2 Bytes speichern den ganzzahligen Inhalt. Wenn 2 ^ 16 <= Wert < 2 ^ 24, verwenden Sie 4 Bytes zum Speichern, das erste Byte ist 252 und die anderen 3 Bytes speichern den ganzzahligen Inhalt. Wenn 2 ^ 24 <= Wert < 2 ^ 64, verwenden Sie 9 Bytes zum Speichern, das erste Byte ist 255 und die anderen 8 Bytes speichern den ganzzahligen Inhalt. Wenn das erste Byte 251 ist, bedeutet dies, dass das ganzzahlige Feld null ist.
       Wenn das erste Byte 255 ist, bedeutet dies, dass dieses Byte das erste Byte des ERR-Pakets ist. 2. Zeichenfolge mit codierbarer Länge Die Länge der Zeichenfolge wird mithilfe einer Ganzzahl mit variabler Länge codiert.

2.3 SQL-Syntax

SQL kann in zwei Teile unterteilt werden: Data Manipulation Language (DML) und Data Definition Language (DDL). SQL (Structured Query Language) ist eine Syntax zum Ausführen von Abfragen. Die SQL-Sprache umfasst aber auch Syntax zum Aktualisieren, Einfügen und Löschen von Datensätzen.

Abfrage- und Aktualisierungsanweisungen bilden den DML-Teil von SQL:

SELECT – Daten aus einer Datenbanktabelle abrufen. UPDATE – Daten in einer Datenbanktabelle aktualisieren. DELETE – Daten aus einer Datenbanktabelle löschen. INSERT INTO – Daten in eine Datenbanktabelle einfügen. Der Data Definition Language (DDL)-Teil von SQL gibt uns die Möglichkeit, Tabellen zu erstellen oder zu löschen. Wir können auch Indizes (Schlüssel) definieren, Links zwischen Tabellen angeben und Einschränkungen zwischen Tabellen auferlegen.

Die wichtigsten DDL-Anweisungen in SQL:

CREATE DATABASE - erstellt eine neue DatenbankALTER DATABASE - ändert eine DatenbankCREATE TABLE - erstellt eine neue TabelleALTER TABLE - ändert (verändert) eine DatenbanktabelleDROP TABLE - löscht eine TabelleCREATE INDEX - erstellt einen Index (Suchschlüssel)DROP INDEX - löscht einen Index

3. Zusammenfassung

In diesem Artikel wird MySQL aus der Makro- und Nutzungsperspektive erläutert und später ausführlicher besprochen. Bitte achten Sie auch mehr auf weitere Inhalte auf 123WORDPRESS.COM

Das könnte Sie auch interessieren:
  • Zusammenfassung der grundlegenden Operationen für MySQL-Anfänger
  • MySQL-Anfängerhandbuch - Kurzreferenz
  • Erste Schritte mit Mysql - SQL-Ausführungsprozess

<<:  Beim Bereitstellen von rabbitmq mit Docker sind zwei Probleme aufgetreten

>>:  HTML+CSS zum Erstellen eines einfachen Fortschrittsbalkens

Artikel empfehlen

Tutorial zur kostenlosen Konfiguration der MySQL 5.7.18-Installationsversion

Installations-Tutorial zur kostenlosen Installati...

MySQL etabliert eine effiziente Indexbeispielanalyse

Dieser Artikel beschreibt anhand von Beispielen, ...

Implementierung der Clusterkonstruktion im Docker Redis5.0-Cluster

Systemumgebung: Ubuntu 16.04LTS In diesem Artikel...

So verwenden Sie vue.js zum Implementieren der Drag & Drop-Funktion

Vorwort Durch das Hinzufügen einer Drag & Dro...

Grundlegendes zu MySQL-Sperren basierend auf Update-SQL-Anweisungen

Vorwort Die MySQL-Datenbanksperre ist ein wichtig...

Detaillierte Erläuterung des CocosCreator-Projektstrukturmechanismus

Inhaltsverzeichnis 1. Projektordnerstruktur 1. As...

Ein tiefer Einblick in die MySQL InnoDB-Speicher-Engine

Vorwort InnoDB gehört in MySQL zur Speicher-Engin...

So implementieren Sie die Fernzugriffskontrolle in Centos 7.4

1. SSH-Remoteverwaltung SSH ist ein sicheres Kana...