Das Thema, das ich heute mit Ihnen teilen möchte, lautet: „Was genau ist der Tabellenbereich, über den alle oft sprechen? Was genau ist eine Datentabelle?“ Dies ist eigentlich ein konzeptioneller Wissenspunkt, der als Wissenserweiterung betrachtet werden sollte. Sie müssen lediglich die zugrunde liegenden Konzepte verstehen und einen Eindruck von den beteiligten Parametern hinterlassen. 1. Was ist eine Tabelle? Jeder, der MySQL verwendet hat, weiß intuitiv, dass MySQL-Daten in Datentabellen gespeichert werden. Beispielsweise ein Update-SQL: Benutzer aktualisieren, Benutzernamen = „Daydream“ festlegen, wobei ID = 999; Es ändert die Spalte „Benutzername“ des Datensatzes mit der ID 1 in der Benutzerdatentabelle in „Daydream“. Der Benutzer ist hier eigentlich eine Datentabelle. Darum geht es natürlich nicht. Ich möchte lediglich darauf hinweisen, dass die Datentabelle eigentlich ein logisches Konzept ist. Der unten besprochene Tabellenraum ist ein physikalisches Konzept. 2. Was ist ein Tablespace? Ich weiß nicht, ob Sie diesen Satz schon einmal gesehen haben: „In der InnoDB-Speicher-Engine werden Daten gemäß Tablespaces organisiert und gespeichert.“ Tatsächlich gibt es einen Subtext: Der Tablespace ist eine Tablespace-Datei, die eine tatsächliche physische Datei ist. Sie müssen sich keine Gedanken darüber machen, warum es Tablespace heißt oder warum der Tablespace einer physischen Datei auf der Festplatte entspricht, da MySQL auf diese Weise konzipiert und eingerichtet ist. Akzeptieren Sie das Konzept einfach direkt. MySQL verfügt über viele Tablespace-Typen. Schauen wir sie uns gemeinsam an. 3. Sys-Tabellenbereich Sie können Ihren MySQL-Systemtabellenbereich folgendermaßen anzeigen: Der Wertteil besteht aus: Name:Größe:Attribute Standardmäßig initialisiert MySQL eine Datei namens ibdata1 mit einer Größe von 12 MB und diese wird automatisch erweitert, wenn die Datenmenge zunimmt. Diese ibdata1-Datei ist der Systemtabellenbereich, der Standardtabellenbereich, die physische Datei des Standardtabellenbereichs und der legendäre gemeinsam genutzte Tabellenbereich.
4. Konfigurieren Sie den Sys-Tablespace Die Anzahl und Größe des Systemtabellenbereichs kann durch den Startparameter festgelegt werden: innodb_data_file_path # meine.cnf [mysqld] innodb_data_file_path=/dir1/ibdata1:2000M;/dir2/ibdata2:2000M:autoextend 5. Datei pro Tabelle Tablespace Wenn Sie möchten, dass jede Datenbanktabelle eine separate Tablespace-Datei hat, können Sie dies über den Parameter innodb_file_per_table festlegen.
Über die Konfigurationsdatei [mysqld] innodb_file_per_table=EIN Sie können auch den Befehl mysql> GLOBAL SETZEN innodb_file_per_table=ON; Wenn Sie es auf „ON“ setzen, verfügen die von der InnoDB-Speicher-Engine generierten Tabellen über ihre eigenen unabhängigen Tablespace-Dateien. Unabhängige Benennungsregeln für Tablespace-Dateien: Tabellenname.ibd Beachten:
Schauen Sie sich meine Tablespace-Dateien an: Abschließend wollen wir noch kurz die Vor- und Nachteile dieser Datei pro Tabelle beschreiben: Vorteil:
Mangel: Es ist nicht benutzerfreundlich für den Systemaufruf fsync. Wenn Sie eine Tablespace-Datei verwenden, kann ein einziger Systemaufruf die Datenlöschung abschließen, aber wenn Sie die Tablespace-Datei in mehrere aufteilen. Das ursprüngliche Fsync kann zu einem Fsync werden, das für alle beteiligten Tablespace-Dateien ausgeführt wird, wodurch sich die Anzahl der Fsyncs erhöht. 6. Temporärer Tabellenbereich Der temporäre Tabellenbereich wird zum Speichern von von Benutzern erstellten temporären Tabellen und internen temporären Tabellen auf der Festplatte verwendet. Der Parameter innodb_temp_data_file_path definiert einige der Namens-, Größen- und Spezifikationsattribute des temporären Tablespace wie unten gezeigt: Zeigen Sie das Verzeichnis an, in dem temporäre Tablespace-Dateien gespeichert sind 7. Tablespace rückgängig machen Ich glaube, Sie haben bestimmt schon von Undolog gehört. Wenn Ihr Programm eine Transaktion rückgängig machen möchte, hilft Ihnen das zugrunde liegende MySQL tatsächlich dabei, diese Undo-Informationen zu nutzen. In den MySQL-Einstellungen gibt es einen Tabellenbereich, der speziell zum Speichern von Undolog-Protokolldateien verwendet werden kann. In den MySQL-Einstellungen wird Undolog jedoch standardmäßig im Systemtabellenbereich platziert. Wenn Ihr MySQL neu installiert ist, können Sie die Nutzung Ihres MySQL-Undo-Tablespace anzeigen, indem Sie den folgenden Befehl ausführen: Wie Sie sehen, habe ich zwei Undo-Log-Tablespaces für MySQL. Das heißt, mein Undo wird vom Standardsystem-Tabellenbereich in den dedizierten Tabellenbereich für das Undo-Protokoll übertragen. Sollte das Undo-Protokoll also mit der Standardkonfiguration im Systemtabellenbereich platziert werden? Oder sollte es im Undo-Tabellenbereich platziert werden? Dies hängt tatsächlich von der Art der vom Server verwendeten Speichervolumes ab. Wenn SSD-Speicher verwendet wird, wird empfohlen, Undo-Informationen im Undo-Tablespace zu speichern. Oben finden Sie detaillierte Informationen zum MySQL-Tablespace. Weitere Informationen zum MySQL-Tablespace finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Umfassendes Verständnis der Überwachung von HTML-Formulareingaben
>>: So verwenden Sie async await elegant in JS
Das MySQL auf einem Server im Computerraum lief e...
Hier ist eine Fallstudie zu Ihrer Information, wi...
In diesem Artikel wird der spezifische Code für J...
1. Einleitung Container nutzen einen Sandbox-Mech...
Definition und Verwendung von „deaktiviert“ Das d...
Wie wir alle wissen, wird die absolute CSS-Positi...
Öffnen Sie zunächst die virtuelle Maschine Öffnen...
Beim Exportieren von Daten in Operationen ist das...
Bei Webdiensten geht es um die Kommunikation zwis...
In diesem Artikel wird der spezifische JavaScript...
Beim Erstellen eines SPA müssen Sie häufig bestim...
Der <area>-Tag definiert einen Bereich in e...
Inhaltsverzeichnis MySQL Shell import_table Daten...
Dieser Artikel beschreibt anhand von Beispielen, ...
Der sogenannte Container erstellt tatsächlich ein...