Auswahl der MySQL-Tabellentyp-Speicher-Engine

Auswahl der MySQL-Tabellentyp-Speicher-Engine

1. Zeigen Sie die Speicher-Engine der aktuellen Datenbankausgaben an

Methode 1:

mysql> Engines anzeigen \G;
*************************** 1. Reihe ***************************
      Engine: InnoDB
     Unterstützung: JA
     Kommentar: Unterstützt Transaktionen, Zeilensperren und Fremdschlüssel
Transaktionen: JA
          XA: JA
  Speicherpunkte: JA
*************************** 2. Reihe ***************************
      Motor: MRG_MYISAM
     Unterstützung: JA
     Kommentar: Sammlung identischer MyISAM-Tabellen
Transaktionen: NEIN
          XA: NEIN
  Speicherpunkte: NEIN
*************************** 3. Reihe ***************************
      Motor: SPEICHER
     Unterstützung: JA
     Kommentar: Hash-basiert, im Speicher abgelegt, nützlich für temporäre Tabellen
Transaktionen: NEIN
          XA: NEIN
  Speicherpunkte: NEIN
*************************** 4. Reihe ***************************
      Motor: BLACKHOLE
     Unterstützung: JA
     Kommentar: /dev/null-Speicher-Engine (alles, was Sie dort schreiben, verschwindet)
Transaktionen: NEIN
          XA: NEIN
  Speicherpunkte: NEIN
*************************** 5. Reihe ***************************
      Motor: MyISAM
     Unterstützung: STANDARD
     Kommentar: MyISAM-Speicher-Engine
Transaktionen: NEIN
          XA: NEIN
  Speicherpunkte: NEIN
*************************** 6. Reihe ***************************
      Engine: CSV
     Unterstützung: JA
     Kommentar: CSV-Speicher-Engine
Transaktionen: NEIN
          XA: NEIN
  Speicherpunkte: NEIN
*************************** 7. Reihe ***************************
      Motor: ARCHIV
     Unterstützung: JA
     Kommentar: Archivspeicher-Engine
Transaktionen: NEIN
          XA: NEIN
  Speicherpunkte: NEIN
*************************** 8. Reihe ***************************
      Engine: PERFORMANCE_SCHEMA
     Unterstützung: JA
     Kommentar: Leistungsschema
Transaktionen: NEIN
          XA: NEIN
  Speicherpunkte: NEIN
*************************** 9. Reihe ***************************
      Motor: FEDERATED
     Unterstützung: NEIN
     Kommentar: Föderierte MySQL-Speicher-Engine
Transaktionen: NULL
          XA: NULL
  Sicherungspunkte: NULL
9 Zeilen im Satz (0,00 Sek.)

FEHLER:
Keine Abfrage angegeben

Methode 2:

(Datensätze mit dem Wert „ DISABLED “ zeigen an, dass die Speicher-Engine unterstützt wird, aber beim Starten der Datenbank deaktiviert ist.)

mysql> Variablen wie „have%“ anzeigen;
+------------------------+----------+
| Variablenname | Wert |
+------------------------+----------+
| habe_komprimiert | JA |
| have_crypt | NEIN |
| habe_dynamisches_Laden | JA |
| habe_Geometrie | JA |
| have_openssl | DEAKTIVIERT |
| habe_profiling | JA |
| habe_Abfragecache | JA |
| habe_rtree_keys | JA |
| have_ssl | DEAKTIVIERT |
| habe_anweisung_timeout | JA |
| habe_symlink | JA |
+------------------------+----------+
11 Zeilen im Satz, 1 Warnung (0,00 Sek.)

2. ENGINE={Speicher-Engine-Typ} Legen Sie die Speicher-Engine beim Erstellen einer Tabelle fest.

mysql> Tabelle erstellen a(
    -> i bigint(20) ungleich null auto_increment,
    -> Primärschlüssel (i)
    ->) Engine=Myisam Standardzeichensatz=gbk;
FEHLER 2006 (HY000): MySQL-Server ist weg
Keine Verbindung. Versuch, die Verbindung wiederherzustellen …
Verbindungs-ID: 3
Aktuelle Datenbank: Test

Abfrage OK, 0 Zeilen betroffen (1,33 Sek.)

3. ändern Sie tablename engine={storage engine type}, um die Tabelle in eine andere Speicher-Engine zu ändern

mysql> Tabelle ändern a Engine=innodb;
Abfrage OK, 0 Zeilen betroffen (1,70 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

mysql> anzeigen, Tabelle erstellen a \G;
*************************** 1. Reihe ***************************
       Tabelle: a
Tabelle erstellen: CREATE TABLE `a` (
  `i` bigint(20) NICHT NULL AUTO_INCREMENT,
  PRIMÄRSCHLÜSSEL (`i`)
) ENGINE=InnoDB STANDARD CHARSET=gbk
1 Zeile im Satz (0,14 Sek.)

3.1 Vergleich gängiger Speicher-Engines

Merkmale MeinIsAM InnoDB ERINNERUNG VERSCHMELZEN NDB
Speicherlimits haben 64 TB haben NEIN haben
Transaktionssicherheit Unterstützung
Verriegelungsmechanismus Tabellensperre Zeilensperre Tabellensperre Tabellensperre Tabellensperre
B-Baum-Index Unterstützung Unterstützung Unterstützung Unterstützung Unterstützung
Hash-Index Unterstützung Unterstützung
Volltextindex Unterstützung
Cluster-Index Unterstützung
Datencache Unterstützung Unterstützung Unterstützung
Index-Cache Unterstützung Unterstützung Unterstützung Unterstützung Unterstützung
Daten können komprimiert werden Unterstützung
Raumnutzung Niedrig hoch N / A Niedrig Niedrig
Speichernutzung Niedrig hoch Medium Niedrig hoch
Stapeleinfügegeschwindigkeit hoch Niedrig hoch hoch hoch
Unterstützt Fremdschlüssel Unterstützung

3.2 Lernen gängiger Speicher-Engines (MyISAM, InnoDB, MEMORY und MERGE)

MyISAM:

Die standardmäßige MySQL Speicher-Engine unterstützt keine Transaktionen und Fremdschlüssel.

Vorteile: Schnelle Zugriffsgeschwindigkeit

Jedes MyISAM wird auf der Festplatte als drei Dateien gespeichert, deren Dateinamen und Tabellennamen identisch sind. Die Erweiterungen sind:

.frm (speichert Tabellendefinitionen)

.MYD (MYData, Speicherdaten)

.MYI (MYIndex, Speicherindex)

(Datendateien und Indexdateien können in verschiedenen Verzeichnissen abgelegt werden, um die E/A gleichmäßig zu verteilen und eine höhere Geschwindigkeit zu erreichen.)

InnoDB:

Die Verarbeitungseffizienz ist gering und es wird mehr Speicherplatz zum Speichern von Daten und Indizes benötigt.

Vorteile: Transaktionssicherheit mit Commit-, Rollback- und Crash-Recovery-Funktionen, die einzige Speicher-Engine, die Fremdschlüssel unterstützt

Spalte für automatisches Wachstum: Die Spalte für automatisches Wachstum der InnoDB -Tabelle kann manuell eingefügt werden, wenn der eingefügte Wert jedoch leer oder 0 ist, ist der tatsächlich eingefügte Wert der Wert nach dem automatischen Wachstum.

mysql> Tabelle erstellen autoincre_demo(
    -> i smallint nicht null auto_increment,
    -> Name varchar(10),Primärschlüssel(i)
    ->)Engine=innodb;
FEHLER 2006 (HY000): MySQL-Server ist weg
Keine Verbindung. Versuch, die Verbindung wiederherzustellen …
Verbindungs-ID: 5
Aktuelle Datenbank: Test

Abfrage OK, 0 Zeilen betroffen (1,19 Sek.)

mysql> in autoincre_demo einfügen Werte(1,"121"),(0,"dddf"),(null,"fdf");
Abfrage OK, 3 Zeilen betroffen (0,59 Sek.)
Datensätze: 3 Duplikate: 0 Warnungen: 0

mysql> wähle * aus autoincre_demo;
+---+------+
| ich | Name |
+---+------+
| 1 | 121 |
| 2 | dddf |
| 3 | fdf |
+---+------+
3 Zeilen im Satz (0,00 Sek.)

alter table tabename auto_increment=n Legt den Anfangswert der Auto-Increment-Spalte fest (dieser Wert beginnt standardmäßig bei 1)

Mit LAST_INSERT_ID() können Sie den Wert abfragen, der vom aktuellen Thread zum Einfügen des letzten Datensatzes verwendet wurde. Wenn mehrere Datensätze gleichzeitig eingefügt werden, wird der vom ersten Datensatz verwendete Auto-Increment-Wert zurückgegeben.

Das folgende Beispiel demonstriert die Verwendung von LAST_INSERT_ID():

mysql> einfügen in autoincre_demo(Name) Werte('3');
Abfrage OK, 1 Zeile betroffen (0,36 Sek.)

mysql> wähle LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 15 |
+------------------+
1 Zeile im Satz (0,00 Sek.)

mysql> einfügen in autoincre_demo(Name) Werte('3'),('6'),('323'),('21');
Abfrage OK, 4 Zeilen betroffen (0,09 Sek.)
Datensätze: 4 Duplikate: 0 Warnungen: 0

mysql> wähle LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 16 |
+------------------+
1 Zeile im Satz (0,00 Sek.)


Fremdschlüsseleinschränkungen:

Beim Erstellen eines Fremdschlüssels muss die übergeordnete Tabelle über einen entsprechenden Index verfügen, und die untergeordnete Tabelle erstellt beim Erstellen eines Fremdschlüssels automatisch einen entsprechenden Index.

Unten sind zwei Tabellen in der Beispieldatenbank. country Ländertabelle ist die übergeordnete Tabelle country_id als Primärschlüsselindex. city ist die untergeordnete Tabelle, wobei das Feld country_id einen Fremdschlüssel zum Feld country_id in country hat.

mysql> Tabelle Land erstellen(
    -> country_id smallint unsigned nicht null auto_increment,
    -> Land varchar(50) nicht null,
    -> last_update-Zeitstempel nicht null, Standardwert ist current_timestamp bei Update current_timestamp,
    -> Primärschlüssel (Länder-ID)
    -> )engine=innodb Standardzeichensatz=utf8;

Abfrage OK, 0 Zeilen betroffen (0,86 Sek.)
mysql> CREATE TABLE Stadt (
    -> city_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> Stadt VARCHAR(50) NICHT NULL,
    -> Länder-ID SMALLINT UNSIGNED NOT NULL,
    -> letztes Update TIMESTAMP NICHT NULL STANDARD CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP,
    -> PRIMÄRSCHLÜSSEL (city_id),
    -> SCHLÜSSEL idx_fk_country_id (Länder-ID),
    -> CONSTRAINT `fk_city_country` FOREIGN KEY (country_id) REFERENCES Land (country_id) ON
    -> LÖSCHBESCHRÄNKUNG BEI UPDATEKASKADE
    -> )ENGINE=InnoDB STANDARD-CHARSET=utf8;
Abfrage OK, 0 Zeilen betroffen (3,22 Sek.)

Beim Erstellen eines Indexes können Sie die entsprechenden Operationen angeben, die an der untergeordneten Tabelle ausgeführt werden sollen, wenn die übergeordnete Tabelle gelöscht oder aktualisiert wird, einschließlich RESTRICT , CASCADE, SET NULL und NO ACTION .

  • RESTRICT ist dasselbe wie NO ACTION und bedeutet, dass die übergeordnete Tabelle nicht aktualisiert werden kann, wenn in der untergeordneten Tabelle zugehörige Datensätze vorhanden sind.
  • CASCADE bedeutet, dass beim Aktualisieren oder Löschen der übergeordneten Tabelle die entsprechenden Datensätze in der untergeordneten Tabelle aktualisiert oder gelöscht werden.
  • SET NULL bedeutet, dass beim Aktualisieren oder Löschen der übergeordneten Tabelle die entsprechenden Felder der untergeordneten Tabelle SET NULL werden.
mysql> wähle * aus Land;
+------------+---------+---------------------+
| Länder-ID | Land | letzte_Aktualisierung |
+------------+---------+---------------------+
| 1 | AAA | 16.06.2021 15:09:22 |
+------------+---------+---------------------+
1 Zeile im Satz (0,00 Sek.)

mysql> wähle * aus Stadt;
+---------+------+------------+---------------------+
| Stadt-ID | Stadt | Länder-ID | letzte_Aktualisierung |
+---------+------+------------+---------------------+
| 10 | bb | 1 | 16.06.2021 15:11:45 |
+---------+------+------------+---------------------+
1 Zeile im Satz (0,00 Sek.)

mysql> löschen aus Land, in dem country_id = 1;
FEHLER 1451 (23000): Eine übergeordnete Zeile kann nicht gelöscht oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl (`test`.`city`, CONSTRAINT `fk_city_country` FOREIGN KEY (`country_id`) REFERENCES `country` (`country_id`) ON UPDATE CASCADE)

mysql> Land aktualisieren, country_id = 10000 festlegen, wobei country_id = 1;
Abfrage OK, 1 Zeile betroffen (0,62 Sek.)
Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0

mysql> wähle * aus Land;
+------------+---------+---------------------+
| Länder-ID | Land | letzte_Aktualisierung |
+------------+---------+---------------------+
| 16.06.2021 15:13:35 |
+------------+---------+---------------------+
1 Zeile im Satz (0,00 Sek.)

mysql> wähle * aus Stadt
    -> ;
+---------+------+------------+---------------------+
| Stadt-ID | Stadt | Länder-ID | letzte_Aktualisierung |
+---------+------+------------+---------------------+
| 10 | bb | 10000 | 16.06.2021 15:11:45 |
+---------+------+------------+---------------------+
1 Zeile im Satz (0,00 Sek.)

Wenn Sie beim Importieren von Daten aus mehreren Tabellen die Reihenfolge, in der die Tabellen importiert wurden, ignorieren müssen, können Sie die Fremdschlüsselprüfung vorübergehend deaktivieren. Ebenso können Sie beim Ausführen LOAD DATA und ALTER TABLE Vorgängen die Verarbeitung beschleunigen, indem Sie die Fremdschlüsseleinschränkungen vorübergehend deaktivieren. Der Befehl zum Deaktivieren lautet „ SET FOREIGN_KEY_CHECKS = 0 ;“. Nachdem die Ausführung abgeschlossen ist, setzen Sie sie durch Ausführen der Anweisung „ SETFOREIGN_KEY_CHECKS = 1 ;“ wieder in den ursprünglichen Zustand zurück.

Fremdschlüsselinformationen der Tabelle anzeigen: Befehl show create table oder show table status

mysql> Tabellenstatus wie „Stadt“ anzeigen \G;
*************************** 1. Reihe ***************************
           Name: Stadt
         Engine: InnoDB
        Version: 10
     Row_format: Dynamisch
           Reihen: 1
 Durchschnittliche Zeilenlänge: 16384
    Datenlänge: 16384
Max_data_length: 0
   Indexlänge: 16384
      Datenfrei: 0
 Auto_Inkrement: 11
    Erstellungszeit: 2021-06-16 15:02:17
    Aktualisierungszeit: 2021-06-16 15:13:35
     Check_time: NULL
      Sortierung: utf8_general_ci
       Prüfsumme: NULL
 Erstellungsoptionen:
        Kommentar:
1 Zeile im Satz (0,43 Sek.)

FEHLER:
Keine Abfrage angegeben
 

Speichermethode:

  • (1) Verwenden Sie gemeinsam genutzten Tablespace-Speicher: Die Tabellenstruktur wird in der Datei .frm gespeichert, und die Daten + der Index werden in dem durch innodb_data_home_dir und innodb_data_file_path definierten Tablespace gespeichert, bei dem es sich um mehrere Dateien handeln kann.
  • (2) Verwenden Sie Multi-Tablespace-Speicher: Die Tabellenstruktur wird auch in der .frm-Datei gespeichert, und die Daten + Indexe sind separat in ibd vorhanden. Wenn es sich um eine partitionierte Tabelle handelt, entspricht jede Partition einer separaten .ibd-Datei. Der Dateiname lautet: „Tabellenname + Partitionsname“. Beim Erstellen einer Partition können Sie den Speicherort der Datendatei für jede Partition angeben, um die IO der Tabelle gleichmäßig auf mehrere Festplatten zu verteilen.

ERINNERUNG:

Erstellen Sie eine Tabelle mit den im Speicher abgelegten Inhalten

Jede MEMORY-Tabelle entspricht tatsächlich nur einer Festplattendatei und das Format ist frm .

Vorteile: Schnelle Zugriffsgeschwindigkeit (Daten werden im Speicher abgelegt) und standardmäßig wird der HASH-Index verwendet. Daten gehen verloren, wenn der Dienst beendet wird.

mysql> CREATE TABLE tab_memory ENGINE=SPEICHER
    -> WÄHLEN Sie Stadt-ID, Stadt, Länder-ID
    -> VON Stadt GRUPPE NACH Stadt-ID;
FEHLER 2006 (HY000): MySQL-Server ist weg
Keine Verbindung. Versuch, die Verbindung wiederherzustellen …
Verbindungs-ID: 12
Aktuelle Datenbank: Test

Abfrage OK, 1 Zeile betroffen (0,62 Sek.)
Datensätze: 1 Duplikate: 0 Warnungen: 0

mysql> wähle * aus tab_memory;
+---------+------+------------+
| Stadt-ID | Stadt | Länder-ID |
+---------+------+------------+
| 10 | bb | 10000 |
+---------+------+------------+
1 Zeile im Satz (0,00 Sek.)

mysql> zeige Tabellenstatus wie 'tab_memory' \G
*************************** 1. Reihe ***************************
           Name: tab_memory
         Motor: SPEICHER
        Version: 10
     Row_format: Behoben
           Reihen: 1
 Durchschnittliche Zeilenlänge: 155
    Datenlänge: 520320
Max_data_length: 65011650
   Indexlänge: 0
      Datenfrei: 0
 Auto_increment: NULL
    Erstellungszeit: 2021-06-16 15:28:58
    Update_time: NULL
     Check_time: NULL
      Sortierung: utf8_unicode_ci
       Prüfsumme: NULL
 Erstellungsoptionen:
        Kommentar:
1 Zeile im Satz (0,00 Sek.)

Beim Erstellen eines Indexes für eine Tabelle können Sie den Indextyp als HASH oder BTREE angeben.

mysql> Index mem_hash erstellen, indem Hash auf tab_memory(city_id) verwendet wird;
FEHLER 2006 (HY000): MySQL-Server ist weg
Keine Verbindung. Versuch, die Verbindung wiederherzustellen …
Verbindungs-ID: 13
Aktuelle Datenbank: Test

Abfrage OK, 1 Zeile betroffen (0,63 Sek.)
Datensätze: 1 Duplikate: 0 Warnungen: 0

mysql> Index aus Tab_Memory anzeigen \G;
*************************** 1. Reihe ***************************
        Tabelle: tab_memory
   Nicht eindeutig: 1
     Schlüsselname: mem_hash
 Seq_in_index: 1
  Spaltenname: city_id
    Sortierung: NULL
  Kardinalität: 1
     Unterteil: NULL
       Gepackt: NULL
         Null:
   Indextyp: HASH
      Kommentar:
Index_Kommentar:
1 Zeile im Satz (0,32 Sek.)

FEHLER:
Keine Abfrage angegeben

mysql> Index mem_hash auf tab_memory löschen;
Abfrage OK, 1 Zeile betroffen (0,31 Sek.)
Datensätze: 1 Duplikate: 0 Warnungen: 0

mysql> erstelle Index mem_hash mit btree auf tab_memory(city_id);
Abfrage OK, 1 Zeile betroffen (0,16 Sek.)
Datensätze: 1 Duplikate: 0 Warnungen: 0

mysql> Index aus Tab_Memory anzeigen \G;
*************************** 1. Reihe ***************************
        Tabelle: tab_memory
   Nicht_eindeutig: 1
     Schlüsselname: mem_hash
 Seq_in_index: 1
  Spaltenname: city_id
    Sortierung: A
  Kardinalität: NULL
     Unterteil: NULL
       Gepackt: NULL
         Null:
   Indextyp: BTREE
      Kommentar:
Index_Kommentar:
1 Zeile im Satz (0,00 Sek.)

FEHLER:
Keine Abfrage angegeben
 

VERSCHMELZEN:

Dieser Speicherdienst ist eine Kombination aus einer Gruppe von MyISAM -Tabellen

Tabellen vom Typ MERGE können abgefragt, aktualisiert und gelöscht werden. Diese Vorgänge werden tatsächlich an der tatsächlichen internen MyISAM Tabelle ausgeführt.

Bei Einfügevorgängen für Tabellen vom Typ MERGE wird die einzufügende Tabelle durch die Klausel INSERT_METHOD definiert, die drei verschiedene Werte haben kann. Bei Verwendung des Werts FIRST oder LAST wird der Einfügevorgang für die erste bzw. letzte Tabelle ausgeführt. Wenn diese Klausel nicht definiert ist oder als NO definiert wird, können für diese MERGE-Tabelle keine Einfügevorgänge ausgeführt werden.

Sie können eine DROP-Operation auf einer MERGE Tabelle ausführen. Diese Operation löscht nur die Definition von MERGE und hat keine Auswirkungen auf die internen Tabellen.

Speicherdateien: Eine .frm Datei speichert die Tabellendefinition und die andere .MRG Datei enthält die Informationen der kombinierten Tabelle, einschließlich der Tabellen, aus denen die MERGE -Tabelle besteht, und der Grundlage für das Einfügen neuer Daten

mysql> Tabelle erstellen Zahlung_2020(
    -> Länder-ID smallint,
    -> Zahlungsdatum,
    -> Betrag DECIMAL(15,2),
    -> SCHLÜSSEL idx_fk_country_id (Länder-ID)
    ->)engine=myisam;
Abfrage OK, 0 Zeilen betroffen (0,25 Sek.)

mysql> Tabelle Zahlung_2021 erstellen(
    -> Länder-ID smallint,
    -> Zahlungsdatum,
    -> Betrag DECIMAL(15,2),
    -> SCHLÜSSEL idx_fk_country_id (Länder-ID)
    ->)engine=myisam;
Abfrage OK, 0 Zeilen betroffen (0,54 Sek.)

mysql> CREATE TABLE Zahlung_alle(
    -> Länder-ID smallint,
    -> Zahlungsdatum,
    -> Betrag DECIMAL(15,2),
    -> INDEX(Länder-ID)
    -> )engine=merge union=(Zahlung_2020,Zahlung_2021) INSERT_METHOD=LAST;
Abfrage OK, 0 Zeilen betroffen (0,47 Sek.)


Fügen Sie Daten in die Jahre 2020 und 2021 ein und fragen Sie ab

mysql> in Zahlung_2020 einfügen Werte(1,'2020-06-01',100000),(2,'2020-06-15',150000);
Abfrage OK, 2 Zeilen betroffen (0,00 Sek.)
Datensätze: 2 Duplikate: 0 Warnungen: 0

mysql> in Zahlung_2021 einfügen Werte(1,'2021-04-20',35000),(2,'2021-06-15',220000);
Abfrage OK, 2 Zeilen betroffen (0,03 Sek.)
Datensätze: 2 Duplikate: 0 Warnungen: 0

mysql> wähle * aus Zahlung_2020;
+------------+---------------------+-----------+
| Länder-ID | Zahlungsdatum | Betrag |
+------------+---------------------+-----------+
| 1 | 01.06.2020 00:00:00 | 100000,00 |
| 2 | 15.06.2020 00:00:00 | 150000,00 |
+------------+---------------------+-----------+
2 Zeilen im Satz (0,00 Sek.)

mysql> wähle * aus Zahlung_2021;
+------------+---------------------+-----------+
| Länder-ID | Zahlungsdatum | Betrag |
+------------+---------------------+-----------+
| 1 | 20.04.2021 00:00:00 | 35000,00 |
| 2 | 15.06.2021 00:00:00 | 220000,00 |
+------------+---------------------+-----------+
2 Zeilen im Satz (0,00 Sek.)

mysql> wähle * aus Zahlung_alle;
+------------+---------------------+-----------+
| Länder-ID | Zahlungsdatum | Betrag |
+------------+---------------------+-----------+
| 1 | 01.06.2020 00:00:00 | 100000,00 |
| 2 | 15.06.2020 00:00:00 | 150000,00 |
| 1 | 20.04.2021 00:00:00 | 35000,00 |
| 2 | 15.06.2021 00:00:00 | 220000,00 |
+------------+---------------------+-----------+
4 Zeilen im Satz (0,00 Sek.)

Es lässt sich feststellen, dass die Daten in payment_all die Ergebnismenge der zusammengeführten Datensätze der Tabellen payment_2020 und payment_2021 sind.

Als nächstes fügen Sie einen Datensatz in die MERGE -Tabelle ein. Da die Definition der MERGE Tabelle INSERT_METHOD=LAST lautet, wird der Datensatz in die letzte Tabelle eingefügt. Obwohl der hier eingefügte Datensatz aus dem Jahr 2006 stammt, wird er daher trotzdem in payment_2021 geschrieben.

mysql> in Zahlung_alle Werte einfügen (3,'2020-03-30',12333131);
Abfrage OK, 1 Zeile betroffen (0,31 Sek.)

mysql> wähle * aus Zahlung_alle;
+------------+---------------------+-------------+
| Länder-ID | Zahlungsdatum | Betrag |
+------------+---------------------+-------------+
| 1 | 01.06.2020 00:00:00 | 100000,00 |
| 2 | 15.06.2020 00:00:00 | 150000,00 |
| 1 | 20.04.2021 00:00:00 | 35000,00 |
| 2 | 15.06.2021 00:00:00 | 220000,00 |
| 3 | 30.03.2020 00:00:00 | 12333131,00 |
+------------+---------------------+-------------+
5 Zeilen im Satz (0,00 Sek.)

mysql> wähle * aus Zahlung_2021;
+------------+---------------------+-------------+
| Länder-ID | Zahlungsdatum | Betrag |
+------------+---------------------+-------------+
| 1 | 20.04.2021 00:00:00 | 35000,00 |
| 2 | 15.06.2021 00:00:00 | 220000,00 |
| 3 | 30.03.2020 00:00:00 | 12333131,00 |
+------------+---------------------+-------------+
3 Zeilen im Satz (0,00 Sek.)

mysql> wähle * aus Zahlung_2020;
+------------+---------------------+-----------+
| Länder-ID | Zahlungsdatum | Betrag |
+------------+---------------------+-----------+
| 1 | 01.06.2020 00:00:00 | 100000,00 |
| 2 | 15.06.2020 00:00:00 | 150000,00 |
+------------+---------------------+-----------+
2 Zeilen im Satz (0,00 Sek.)

Dies ist das Ende dieses Artikels über die Auswahl der MySQL-Tabellentyp-Speicher-Engine. Weitere relevante Inhalte zu MySQL-Tabellentyp-Speicher-Engines finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Erläuterung des Beispiels einer MySQL-Datenanalyse-Speicher-Engine
  • Vergleich der von der MySQL-Datenbank unterstützten Speicher-Engines
  • Unterschiede und Vergleiche von Speicher-Engines in MySQL
  • Vor- und Nachteile gängiger MySQL-Speicher-Engines
  • Erfahren Sie mehr über die MySQL-Speicher-Engine

<<:  Die heißesten Trends im Webdesign UI im Jahr 2013 Die beliebtesten UI-Designs

>>:  JavaScript implementiert drei gängige Webeffekte (Offset, Client, Scroll-Serie).

Artikel empfehlen

JS realisiert die Kartenausgabe-Animation

In diesem Artikelbeispiel wird der spezifische JS...

Installations-Tutorial zur dekomprimierten Version von MySQL 5.7.23 für WinX64

Detailliertes Installations-Tutorial zur Dekompri...

Diskussion zur horizontalen und vertikalen Zentrierung von Elementen in HTML

Beim Entwerfen einer Seite müssen wir das DIV häu...

Zabbix benutzerdefinierte Überwachung Nginx Status Implementierungsprozess

Inhaltsverzeichnis Zabbix benutzerdefinierte Über...

Der neue TypeScript-Schnellstart-Übungsbericht des Partners Vue

Inhaltsverzeichnis 1. Bauen Sie mit dem offiziell...

Detaillierte Erklärung der grundlegenden Verwendung des VUE Watch Listener

Inhaltsverzeichnis 1. Der folgende Code ist eine ...

Details zur MySQL-Sicherheitsverwaltung

Inhaltsverzeichnis 1. Vorstellen gemäß der Bestel...

Lösung für EF (Entity Framework)-Einfüge- oder Aktualisierungsfehler

Fehlermeldung: Die Store-Update-, Insert- oder De...

So verwenden Sie den Linux-Paste-Befehl

01. Befehlsübersicht Der Einfügebefehl fügt die e...

Wofür wird jQuery verwendet? jQuery ist eigentlich ein js-Framework

Einführung in jQuery Die jQuery-Bibliothek kann e...