Detaillierte Erläuterung der MySQL-Partitionsfunktion und Beispielanalyse

Detaillierte Erläuterung der MySQL-Partitionsfunktion und Beispielanalyse

Zunächst: Was ist Datenbankpartitionierung?

Ich habe vor einiger Zeit einen Artikel über die MySQL-Tabellenpartitionierung geschrieben. Lassen Sie uns nun am Beispiel von MySQL darüber sprechen, was Datenbankpartitionierung ist. Die Daten in der MySQL-Datenbank werden in Form von Dateien auf der Festplatte gespeichert, die standardmäßig unter /mysql/data abgelegt werden (Sie können sie über datadir in my.cnf anzeigen). Eine Tabelle entspricht hauptsächlich drei Dateien, eine ist frm zum Speichern der Tabellenstruktur, eine ist myd zum Speichern der Tabellendaten und eine ist myi zum Speichern des Tabellenindex. Wenn die Datenmenge in einer Tabelle zu groß ist, werden myd und myi sehr groß und die Suche nach Daten wird sehr langsam. Zu diesem Zeitpunkt können wir die Partitionierungsfunktion von MySQL verwenden, um die drei Dateien, die dieser Tabelle entsprechen, physisch in viele kleine Blöcke aufzuteilen. Auf diese Weise müssen wir bei der Suche nach einem Datenelement nicht alle durchsuchen. Wir müssen nur wissen, in welchem ​​Block sich die Daten befinden, und dann in diesem Block danach suchen. Wenn die Daten in der Tabelle zu groß sind, um auf eine Festplatte zu passen, können wir die Daten auf verschiedene Festplatten verteilen.

Zwei Möglichkeiten zur Partitionierung

1. Horizontale Trennwand

Was ist horizontale Partitionierung? Das heißt, die Partitionierung erfolgt horizontal. Wenn beispielsweise 1 Million Datenelemente vorhanden sind, werden sie in zehn Teile aufgeteilt. Die ersten 100.000 Datenelemente werden in der ersten Partition abgelegt, die zweiten 100.000 Datenelemente in der zweiten Partition und so weiter. Das heißt, die Tabelle wird in zehn Teile aufgeteilt und die Zusammenführung wird zum Aufteilen der Tabelle verwendet, was ein bisschen ähnlich ist. Wenn ein Datenelement abgerufen wird, enthält es alle Felder in der Tabellenstruktur, d. h. die horizontale Partitionierung ändert nicht die Struktur der Tabelle.

2. Vertikale Trennwand

Was ist vertikale Partitionierung? Das heißt, die Partitionierung erfolgt vertikal. Als wir beispielsweise die Benutzertabelle entworfen haben, haben wir am Anfang nicht darüber nachgedacht und alle persönlichen Informationen in eine Tabelle gepackt. Auf diese Weise enthält diese Tabelle relativ große Felder, z. B. persönliche Profile, und diese Profile werden möglicherweise nicht von vielen Personen gelesen. Wenn also jemand sie lesen möchte, kann er danach suchen und die großen Felder beim Aufteilen der Tabelle trennen.

Ich finde, Datenbankpartitionierung ist wie das Schneiden eines Apfels. Soll man ihn horizontal oder vertikal schneiden? Das hängt von Ihren persönlichen Vorlieben ab. Die von MySQL bereitgestellte Partitionierung gehört zum ersten Typ, der horizontalen Partitionierung, und ist auf viele Arten unterteilt. Das folgende Beispiel soll dies verdeutlichen.

Zweitens MySQL-Partition

Ich glaube, es gibt nur eine Möglichkeit, MySQL zu partitionieren. Dabei werden einfach unterschiedliche Algorithmen und Regeln verwendet, um die Daten auf unterschiedliche Blöcke zu verteilen.

1. MySQL 5.1 und höher unterstützen die Partitionierungsfunktion

Bei der Installation können wir überprüfen

[root@BlackGhost mysql-5.1.50]# ./configure --help |grep -A 3 Partition 
=== Partitionsunterstützung === 
Plugin-Name: Partition 
Beschreibung: MySQL-Partitionierungsunterstützung 
Unterstützt Build: statisch 
Konfigurationen: max, max-no-ndb 

Probieren Sie es aus. Wenn Sie das obige Element finden, bedeutet dies, dass es die Partitionierung unterstützt und standardmäßig aktiviert ist. Wenn Sie MySQL bereits installiert haben

mysql> Variablen wie "%part%" anzeigen; 
+---------------------+------+ 
| Variablenname | Wert | 
+---------------------+------+ 
| habe_partitionierung | JA | 
+---------------------+------+ 
1 Zeile im Satz (0,00 Sek.) 

Überprüfen Sie die Variablen. Wenn sie unterstützt werden, wird die obige Eingabeaufforderung angezeigt.

2. Bereichsaufteilung

Eine nach RANGE partitionierte Tabelle ist so partitioniert, dass jede Partition Zeilen enthält, deren Werte des Partitionierungsausdrucks innerhalb eines gegebenen zusammenhängenden Intervalls liegen.

//Erstellen Sie eine Bereichspartitionstabellemysql> CREATE TABLE IF NOT EXISTS `user` ( 
 -> `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Benutzer-ID', 
 -> `name` varchar(50) NICHT NULL STANDARD '' KOMMENTAR 'Name', 
 -> `sex` int(1) NOT NULL DEFAULT '0' COMMENT '0 für männlich, 1 für weiblich', 
 -> PRIMÄRSCHLÜSSEL (`id`) 
 -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 
 -> PARTITION NACH BEREICH (id) ( 
 -> PARTITION p0 WERTE KLEINER ALS (3), 
 -> PARTITION p1 WERTE WENIGER ALS (6), 
 -> PARTITION p2 WERTE WENIGER ALS (9), 
 -> PARTITION p3 WERTE KLEINER ALS (12), 
 -> PARTITION p4 WERTE WENIGER ALS MAXIMALER WERT 
 -> ); 
Abfrage OK, 0 Zeilen betroffen (0,13 Sek.) 
 
//Fügen Sie einige Daten einmysql> INSERT INTO `test`.`user` (`name` ,`sex`)VALUES ('tank', '0') 
 -> ,('zhang',1),('ying',1),('ying',1),('ying',0),('test1',1),('tank2',1) 
 -> ,('tank1',1),('test2',1),('test3',1),('test4',1),('test5',1),('tank3',1) 
 -> ,('tank4',1),('tank5',1),('tank6',1),('tank7',1),('tank8',1),('tank9',1) 
 -> ,('tank10',1),('tank11',1),('tank12',1),('tank13',1),('tank21',1),('tank42',1); 
Abfrage OK, 25 Zeilen betroffen (0,05 Sek.) 
Datensätze: 25 Duplikate: 0 Warnungen: 0 
 
//Gehe zu dem Ort, an dem die Datenbanktabellendateien gespeichert sind. Es gibt eine Konfiguration in my.cnf. Nachdem datadir [root@BlackGhost test]# ls |grep user |xargs du -sh ist 
4.0K Benutzer#P#p0.MYD 
4.0K Benutzer#P#p0.MYI 
4.0K Benutzer#P#p1.MYD 
4.0K Benutzer#P#p1.MYI 
4.0K Benutzer#P#p2.MYD 
4.0K Benutzer#P#p2.MYI 
4.0K Benutzer#P#p3.MYD 
4.0K Benutzer#P#p3.MYI 
4.0K Benutzer#P#p4.MYD 
4.0K Benutzer#P#p4.MYI 
12K Benutzer.frm 
4.0K Benutzer.par 
 
//Daten abrufenmysql> select count(id) as count from user; 
+----------+ 
| zählen | 
+----------+ 
| 25 | 
+----------+ 
1 Zeile im Satz (0,00 Sek.) 
 
//Löschen Sie die vierte Partitionmysql> alter table user drop partition p4; 
Abfrage OK, 0 Zeilen betroffen (0,11 Sek.) 
Datensätze: 0 Duplikate: 0 Warnungen: 0 
 
/**Die in den Partitionen gespeicherten Daten gehen verloren. In der vierten Partition befinden sich 14 Daten und in den verbleibenden drei Partitionen nur 11 Daten. Die Dateigrößen betragen jedoch alle 4,0 KB. Daraus können wir erkennen, dass die kleinste Blockgröße der Partition 4 KB beträgt. 
*/ 
mysql> wähle count(id) als Anzahl vom Benutzer; 
+----------+ 
| zählen | 
+----------+ 
| 11 | 
+----------+ 
1 Zeile im Satz (0,00 Sek.) 
 
//Der vierte Block wurde gelöscht [root@BlackGhost test]# ls |grep user |xargs du -sh 
4.0K Benutzer#P#p0.MYD 
4.0K Benutzer#P#p0.MYI 
4.0K Benutzer#P#p1.MYD 
4.0K Benutzer#P#p1.MYI 
4.0K Benutzer#P#p2.MYD 
4.0K Benutzer#P#p2.MYI 
4.0K Benutzer#P#p3.MYD 
4.0K Benutzer#P#p3.MYI 
12K Benutzer.frm 
4.0K Benutzer.par 
 
/* Sie können die vorhandene Tabelle partitionieren und die Daten in der Tabelle gemäß den Regeln automatisch der entsprechenden Partition zuweisen. Das ist besser und kann viel sparen. Siehe die folgenden Operationen*/ 
mysql> Tabelle AA-Partition nach RANGE(id) ändern 
 -> (PARTITION p1 WERTE kleiner als (1), 
 -> PARTITION p2 WERTE kleiner als (5), 
 -> PARTITION p3 WERTE kleiner als MAXVALUE); 
Abfrage OK, 15 Zeilen betroffen (0,21 Sek.) //Partition 15 Daten Datensätze: 15 Duplikate: 0 Warnungen: 0 
 
//Es gibt insgesamt 15 Datensätzemysql> select count(*) from aa; 
+----------+ 
| Anzahl(*) | 
+----------+ 
| 15 | 
+----------+ 
1 Zeile im Satz (0,00 Sek.) 
 
//Eine Partition löschenmysql> alter table aa drop partition p2; 
Abfrage OK, 0 Zeilen betroffen (0,30 Sek.) 
Datensätze: 0 Duplikate: 0 Warnungen: 0 
 
//Es gibt nur 11 Einträge, was darauf hinweist, dass die vorhandene Tabellenpartition erfolgreich istmysql> select count(*) from aa; 
+----------+ 
| Anzahl(*) | 
+----------+ 
| 11 | 
+----------+ 
1 Zeile im Satz (0,00 Sek.)

3. Partition auflisten

Die Definition und Auswahl jeder Partition bei der LIST-Partitionierung basiert auf dem Wert einer Spalte, die zu einem Wert in einem Wertelistensatz gehört, während die RANGE-Partitionierung zu einem Satz kontinuierlicher Intervallwerte gehört.

// Diese Methode schlägt fehlmysql> CREATE TABLE IF NOT EXISTS `list_part` ( 
 -> `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Benutzer-ID', 
 -> `province_id` int(2) NICHT NULL STANDARD 0 KOMMENTAR 'province_id', 
 -> `name` varchar(50) NICHT NULL STANDARD '' KOMMENTAR 'Name', 
 -> `sex` int(1) NOT NULL DEFAULT '0' COMMENT '0 für männlich, 1 für weiblich', 
 -> PRIMÄRSCHLÜSSEL (`id`) 
 -> ) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 
 -> PARTITION NACH LISTE (provinz_id) ( 
 -> PARTITION p0 WERTE IN (1,2,3,4,5,6,7,8), 
 -> PARTITION p1 WERTE IN (9,10,11,12,16,21), 
 -> PARTITION p2 WERTE IN (13,14,15,19), 
 -> PARTITION p3 WERTE IN (17,18,20,22,23,24) 
 -> ); 
FEHLER 1503 (HY000): Ein PRIMÄRSCHLÜSSEL muss alle Spalten in der Partitionierungsfunktion der Tabelle enthalten 
 
//Diese Methode ist erfolgreichmysql> CREATE TABLE IF NOT EXISTS `list_part` ( 
 -> `id` int(11) NOT NULL COMMENT 'Benutzer-ID', 
 -> `province_id` int(2) NICHT NULL STANDARD 0 KOMMENTAR 'province_id', 
 -> `name` varchar(50) NICHT NULL STANDARD '' KOMMENTAR 'Name', 
 -> `Geschlecht` int(1) NOT NULL DEFAULT '0' COMMENT '0 für männlich, 1 für weiblich' 
 -> ) ENGINE=INNODB STANDARD-CHARSET=utf8 
 -> PARTITION NACH LISTE (provinz_id) ( 
 -> PARTITION p0 WERTE IN (1,2,3,4,5,6,7,8), 
 -> PARTITION p1 WERTE IN (9,10,11,12,16,21), 
 -> PARTITION p2 WERTE IN (13,14,15,19), 
 -> PARTITION p3 WERTE IN (17,18,20,22,23,24) 
 -> ); 
Abfrage OK, 0 Zeilen betroffen (0,33 Sek.)

Wenn beim Erstellen der obigen Listenpartition ein Primärschlüssel vorhanden ist, muss dieser in die Partition aufgenommen werden, da sonst ein Fehler gemeldet wird. Wenn ich den Primärschlüssel nicht verwende, wird die Partition erfolgreich erstellt. Generell muss eine Tabelle einen Primärschlüssel haben. Dies ist eine Einschränkung der Partition.

Wenn Sie die Daten testen möchten, lesen Sie bitte den Bereichspartitionstest.

4. Hash-Partition

Die HASH-Partitionierung wird hauptsächlich verwendet, um sicherzustellen, dass die Daten gleichmäßig auf eine vorgegebene Anzahl von Partitionen verteilt werden. Sie müssen lediglich einen Spaltenwert oder einen Ausdruck basierend auf dem zu hashenden Spaltenwert angeben und die Anzahl der Partitionen angeben, in die die partitionierte Tabelle aufgeteilt wird.

mysql> Tabelle erstellen, wenn `hash_part` nicht vorhanden ist ( 
 -> `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Kommentar-ID', 
 -> `Kommentar` varchar(1000) NOT NULL DEFAULT '' COMMENT 'Kommentar', 
 -> `ip` varchar(25) NICHT NULL STANDARD '' KOMMENTAR 'Quell-IP', 
 -> PRIMÄRSCHLÜSSEL (`id`) 
 -> ) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 
 -> PARTITION NACH HASH(id) 
 -> PARTITIONEN 3; 
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)

Zum Testen beachten Sie bitte die Funktionsweise der Bereichsaufteilung

5. Schlüsselpartition

Die Partitionierung nach KEY ähnelt der Partitionierung nach HASH, mit dem Unterschied, dass bei der HASH-Partitionierung ein benutzerdefinierter Ausdruck verwendet wird, während die Hash-Funktion für die KEY-Partitionierung vom MySQL-Server bereitgestellt wird.

mysql> Tabelle erstellen, wenn `Schlüsselteil` nicht vorhanden ist ( 
 -> `news_id` int(11) NICHT NULL KOMMENTAR 'News-ID', 
 -> `content` varchar(1000) NOT NULL DEFAULT '' COMMENT 'Nachrichteninhalt', 
 -> `u_id` varchar(25) NICHT NULL STANDARD '' KOMMENTAR 'Quell-IP', 
 -> `create_time` DATUM NICHT NULL STANDARD '0000-00-00 00:00:00' KOMMENTAR 'Zeit' 
 -> ) ENGINE=INNODB STANDARD-CHARSET=utf8 
 -> PARTITION NACH LINEAR HASH(JAHR(Erstellungszeit)) 
 -> PARTITIONEN 3; 
Abfrage OK, 0 Zeilen betroffen (0,07 Sek.) 

Zum Testen beachten Sie bitte die Funktionsweise der Bereichsaufteilung

6. Unterteilung

Unterpartitionierung ist die weitere Unterteilung jeder Partition in der Partitionstabelle. Bei der Unterpartitionierung kann entweder HASH-Partitionierung oder KEY-Partitionierung verwendet werden. Dies wird auch als zusammengesetzte Partitionierung bezeichnet.

1. Wenn in einer Partition eine Unterpartition erstellt wird, müssen auch andere Partitionen Unterpartitionen haben

2. Wenn Partitionen erstellt werden, muss die Anzahl der Unterpartitionen in jeder Partition gleich sein

3. Unterpartitionen in derselben Partition haben unterschiedliche Namen, aber Unterpartitionen in verschiedenen Partitionen können denselben Namen haben (gilt nicht für 5.1.50).

mysql> Tabelle erstellen, wenn `sub_part` nicht vorhanden ist ( 
 -> `news_id` int(11) NICHT NULL KOMMENTAR 'News-ID', 
 -> `content` varchar(1000) NOT NULL DEFAULT '' COMMENT 'Nachrichteninhalt', 
 -> `u_id` int(11) NICHT NULL STANDARD 0s KOMMENTAR 'Quell-IP', 
 -> `create_time` DATUM NICHT NULL STANDARD '0000-00-00 00:00:00' KOMMENTAR 'Zeit' 
 -> ) ENGINE=INNODB STANDARD-CHARSET=utf8 
 -> PARTITION NACH BEREICH (JAHR (Erstellungszeit)) 
 -> UNTERPARTITION NACH HASH(BIS_TAGE(Erstellungszeit))( 
 -> PARTITION p0 WERTE KLEINER ALS (1990)(UNTERPARTITION s0,UNTERPARTITION s1,UNTERPARTITION s2), 
 -> PARTITION p1 WERTE WENIGER ALS (2000)(UNTERPARTITION s3,UNTERPARTITION s4,UNTERPARTITION gut), 
 -> PARTITION p2 WERTE KLEINER ALS MAXIMALER WERT (UNTERPARTITION tank0, UNTERPARTITION tank1, UNTERPARTITION tank3) 
 -> ); 
Abfrage OK, 0 Zeilen betroffen (0,07 Sek.) 

Auf der offiziellen Website heißt es, dass Unterpartitionen in verschiedenen Partitionen denselben Namen haben können. MySQL 5.1.50 lässt dies jedoch nicht zu und zeigt den folgenden Fehler an:

FEHLER 1517 (HY000): Doppelter Partitionsname s1

3. Partitionsverwaltung

1. Löschen Sie die Partition

1.mysql> Tabelle ändern, Benutzer, Partition löschen, p4; 

2. Neue Partition hinzufügen

//Bereich hinzufügen, neue Partitionmysql> alter table user add partition(partition p4 values ​​​​smaller than MAXVALUE); 
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.) 
Datensätze: 0 Duplikate: 0 Warnungen: 0 
 
//Liste, neue Partition hinzufügenmysql> alter table list_part add partition(partition p4 values ​​​​in (25,26,28)); 
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) 
Datensätze: 0 Duplikate: 0 Warnungen: 0 
 
//Hash-Neupartitionierung von MySQL> alter table hash_part add partition partitions 4; 
Abfrage OK, 0 Zeilen betroffen (0,12 Sek.) 
Datensätze: 0 Duplikate: 0 Warnungen: 0 
 
//Schlüssel neu partitionierenmysql> alter table key_part add partition partitions 4; 
Abfrage OK, 1 Zeile betroffen (0,06 Sek.) //Einige Daten werden neu zugewiesen. Datensätze: 1 Duplikate: 0 Warnungen: 0 
 
// Durch die Unterpartitionierung wird eine neue Partition hinzugefügt. Obwohl ich keine Unterpartition angegeben habe, benennt das System die Unterpartition. mysql> alter table sub1_part add partition(partition p3 values ​​less than MAXVALUE); 
Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) 
Datensätze: 0 Duplikate: 0 Warnungen: 0 
 
mysql> anzeigen, erstellen, Tabelle sub1_part\G; 
*************************** 1. Reihe *************************** 
 Tabelle: sub1_part 
Tabelle erstellen: CREATE TABLE `sub1_part` ( 
 `news_id` int(11) NICHT NULL KOMMENTAR 'News-ID', 
 `content` varchar(1000) NOT NULL DEFAULT '' COMMENT 'Nachrichteninhalt', 
 `u_id` varchar(25) NICHT NULL STANDARD '' KOMMENTAR 'Quell-IP', 
 `create_time` Datum NICHT NULL STANDARD '0000-00-00' KOMMENTAR 'Zeit' 
) ENGINE=InnoDB STANDARD-CHARSET=utf8 
!50100 PARTITION NACH BEREICH (JAHR(Erstellungszeit)) 
UNTERPARTITION NACH HASH (BIS_TAGE(Erstellungszeit)) 
(PARTITION p0 WERTE WENIGER ALS (1990) 
 (Unterpartition s0 Engine = InnoDB, 
 UNTERPARTITION s1 ENGINE = InnoDB, 
 UNTERPARTITION s2 ENGINE = InnoDB), 
 PARTITION p1 WERTE WENIGER ALS (2000) 
 (Unterpartition s3 Engine = InnoDB, 
 UNTERPARTITION s4 ENGINE = InnoDB, 
 UNTERPARTITION gute ENGINE = InnoDB), 
 PARTITION p2 WERTE WENIGER ALS (3000) 
 (Unterpartition Tank0 Engine = InnoDB, 
 UNTERPARTITION tank1 ENGINE = InnoDB, 
 UNTERPARTITION tank3 ENGINE = InnoDB), 
 PARTITION p3 WERTE WENIGER ALS MAXIMALER WERT 
 (SUBPARTITION p3sp0 ENGINE = InnoDB, //Der Name der Unterpartition wird automatisch generiert SUBPARTITION p3sp1 ENGINE = InnoDB, 
 UNTERPARTITION p3sp2 ENGINE = InnoDB)) 
1 Zeile im Satz (0,00 Sek.)

3. Neupartitionierung

//Bereich neu partitionierenmysql> ALTER TABLE Benutzer REORGANIZE PARTITION p0,p1,p2,p3,p4 INTO (PARTITION p0 WERTE KLEINER ALS MAXIMALER WERT); 
Abfrage OK, 11 Zeilen betroffen (0,08 Sek.) 
Datensätze: 11 Duplikate: 0 Warnungen: 0 
 
//Liste neu partitionierenmysql> ALTER TABLE list_part REORGANIZE PARTITION p0,p1,p2,p3,p4 INTO (PARTITION p0 VALUES in (1,2,3,4,5)); 
Abfrage OK, 0 Zeilen betroffen (0,28 Sek.) 
Datensätze: 0 Duplikate: 0 Warnungen: 0 
 
//Hash- und Schlüsselpartitionen können nicht neu organisiert werden, auf der offiziellen Website wird das sehr deutlich erklärt mysql> ALTER TABLE key_part REORGANIZE PARTITION COALESCE PARTITION 9; 
FEHLER 1064 (42000): Ihre SQL-Syntax weist einen Fehler auf. Überprüfen Sie im Handbuch zu Ihrer MySQL-Serverversion die richtige Syntax in der Nähe von „PARTITION 9“ in Zeile 1. 

Viertens die Vorteile der Partitionierung

1. Partitionen können für größeren Speicherplatz auf mehrere Festplatten aufgeteilt werden

2. Gemäß den Suchbedingungen, also den Bedingungen nach „wo“, müssen nur die entsprechenden Partitionen nicht vollständig durchsucht werden.

3. Bei der Suche in großen Datenmengen kann eine parallele Verarbeitung durchgeführt werden.

4. Verteilen Sie Datenabfragen auf mehrere Festplatten, um einen höheren Abfragedurchsatz zu erzielen

Die oben aufgeführte ausführliche Erklärung der MySQL-Partitionsfunktion und die Beispielanalyse sind alle Inhalte, die der Herausgeber mit Ihnen teilt. Ich hoffe, dass sie Ihnen als Referenz dienen können. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Detaillierte Einführung in die MySQL-Partitionierungstechnologie
  • Eine detaillierte Einführung in die MySQL-Partitionsleistung
  • Detaillierte Analyse der Tabellenpartitionierungstechnologie in MySQL
  • Zusammenfassung der MySQL-Partitionierung
  • So erstellen Sie MySQL-Tabellenpartitionen
  • Eine kurze Analyse des Unterschieds zwischen MySQL-Tabellen-Sharding und -Partitionierung

<<:  Eine umfassende Analyse der Möglichkeiten von Nginx

>>:  Installieren Sie eine virtuelle Python-Umgebung in Ubuntu 18.04

Artikel empfehlen

Datendiebstahl mit CSS in Firefox

0x00 Einführung Vor einigen Monaten habe ich eine...

MySQL Series 7 MySQL-Speicher-Engine

1. MyISAM-Speicher-Engine Mangel: Keine Unterstüt...

So begrenzen Sie den Wertebereich von Objektschlüsseln in TypeScript

Wenn wir TypeScript verwenden, möchten wir das vo...

MySQL-Batch entfernt Leerzeichen in einem bestimmten Feld

Gibt es in MySQL eine Möglichkeit, Leerzeichen st...

Tutorial zum Ändern des Root-Passworts in MySQL 5.7

Versionsupdate, das Passwortfeld im Originalbenut...

Prinzip des Ladens von Docker-Images

Inhaltsverzeichnis Docker-Images Was ist ein Spie...

Eine SQL-Anweisung schließt die MySQL-Deduplizierung ab und behält eine

Als ich vor einigen Tagen an einer Anforderung ar...

So erlauben Sie allen Hosts den Zugriff auf MySQL

1. Ändern Sie den Host-Feldwert eines Datensatzes...