1. Zeigen Sie die Speicher-Engine der aktuellen Datenbankausgaben anMethode 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 „ 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 ändernmysql> 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
3.2 Lernen gängiger Speicher-Engines (MyISAM, InnoDB, MEMORY und MERGE) MyISAM: Die standardmäßige Vorteile: Schnelle Zugriffsgeschwindigkeit Jedes (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 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 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. 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
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 Fremdschlüsselinformationen der Tabelle anzeigen: Befehl 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:
ERINNERUNG: Erstellen Sie eine Tabelle mit den im Speicher abgelegten Inhalten Jede MEMORY-Tabelle entspricht tatsächlich nur einer Festplattendatei und das Format ist 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 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 Tabellen vom Typ Bei Einfügevorgängen für Tabellen vom Typ Sie können eine DROP-Operation auf einer Speicherdateien: Eine 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 Als nächstes fügen Sie einen Datensatz in die 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:
|
<<: Die heißesten Trends im Webdesign UI im Jahr 2013 Die beliebtesten UI-Designs
>>: JavaScript implementiert drei gängige Webeffekte (Offset, Client, Scroll-Serie).
In diesem Artikelbeispiel wird der spezifische JS...
Detailliertes Installations-Tutorial zur Dekompri...
Inhaltsverzeichnis 1. Einleitung 2. Bereitstellun...
Beim Entwerfen einer Seite müssen wir das DIV häu...
Inhaltsverzeichnis Zabbix benutzerdefinierte Über...
Inhaltsverzeichnis 1. Bauen Sie mit dem offiziell...
Bereitstellen des Projekts in der Testumgebung de...
Inhaltsverzeichnis 1. Der folgende Code ist eine ...
Ziehen Sie einfach das Image, erstellen Sie einen...
Lassen Sie mich Ihnen zunächst vorstellen, dass d...
Im eigentlichen Projektentwicklungsprozess wird di...
Inhaltsverzeichnis 1. Vorstellen gemäß der Bestel...
Fehlermeldung: Die Store-Update-, Insert- oder De...
01. Befehlsübersicht Der Einfügebefehl fügt die e...
Einführung in jQuery Die jQuery-Bibliothek kann e...