


Ausführliche Erläuterung der MySQL-Datenbankpartitionierungs- und Tabellenpartitionierungsmethoden sowie Einführung in die Partitionierung und Tabellenpartitionierung
In diesem Artikel werden hauptsächlich MySql-Datenbankpartitionierungs- und Tabellenpartitionierungsmethoden im Detail vorgestellt. Außerdem erfahren Sie, was Tabellenpartitionierung und -partitionierung sind und welche Verbindung zwischen MySQL-Tabellenpartitionierung und -Partitionierung besteht. Es hat einen gewissen Referenzwert. Interessierte Freunde können darauf verweisen
1. Warum müssen wir Tabellen und Partitionen aufteilen
Wir stoßen bei der täglichen Entwicklung oft auf große Probleme Im Fall von Tabellen beziehen sich die sogenannten großen Tabellen auf Tabellen, die Millionen oder sogar Dutzende Millionen Datensätze speichern. Eine solche Tabelle ist zu groß, was dazu führt, dass die Datenbank zu lange zum Abfragen und zum Einfügen benötigt, was zu einer geringen Leistung führt. Wenn eine gemeinsame Abfrage beteiligt ist, wird die Leistung noch schlechter. Der Zweck der Tabellenpartitionierung und Tabellenpartitionierung besteht darin, die Belastung der Datenbank zu verringern und die Effizienz der Datenbank zu verbessern. Im Allgemeinen besteht sie darin, die Effizienz des Hinzufügens, Löschens, Änderns und Abfragens von Tabellen zu verbessern.
2. Was sind Untertabellen und Partitionen
2.1 Untertabellen
Sub -Tabellen zerlegen eine große Tabelle nach bestimmten Regeln in mehrere Entitätstabellen mit unabhängigem Speicherplatz. Jede Tabelle entspricht drei Dateien: MYD-Datendatei, .MYI-Indexdatei und .frm-Tabellenstrukturdatei . . Diese Untertabellen können auf derselben Festplatte oder auf verschiedenen Computern verteilt sein. Wenn die App liest und schreibt, ruft sie den entsprechenden Untertabellennamen gemäß den vordefinierten Regeln ab und führt ihn dann aus.2.2 Partition
Partitionierung ähnelt der Tabellenpartitionierung, bei der Tabellen nach Regeln zerlegt werden. Der Unterschied besteht darin, dass bei der Tabellenaufteilung eine große Tabelle in mehrere unabhängige Entitätstabellen zerlegt wird, während bei der Partitionierung Daten in Segmente unterteilt und an mehreren Orten gespeichert werden, die sich auf derselben Festplatte oder auf verschiedenen Computern befinden können. Nach der Partitionierung befindet sich immer noch eine Tabelle auf der Oberfläche, die Daten werden jedoch an mehrere Speicherorte gehasht. Wenn die App liest und schreibt, verarbeitet sie weiterhin den großen Tabellennamen und die Datenbank organisiert automatisch die partitionierten Daten.Der Hauptzweck der Partitionierung besteht darin, die Gesamtmenge der in einer bestimmten SQL-Operation gelesenen und geschriebenen Daten zu reduzieren, um die Antwortzeit zu verkürzen.
2.3 Welche Verbindung besteht zwischen MySQL-Tabellen und Partitionen?
1) kann die Leistung von MySQL verbessern und im Zustand hoher Parallelität eine gute Leistung erzielen. 2) Tabellenunterteilung und Partitionierung sind nicht inkonsistent und können miteinander zusammenarbeiten. Für Tabellen mit großem Zugriffsvolumen und relativ großen Tabellendaten können wir Untertabelle und Partitionierung kombinieren Tabelle Für Tabellen mit vielen Daten können wir sie partitionieren.
3) Die Untertabellentechnologie ist problematischer. Sie müssen Untertabellen manuell erstellen und der App-Server muss die Untertabellennamen beim Lesen und Schreiben berechnen. Es ist besser, Merge zu verwenden, aber Sie müssen auch eine
Union-Beziehung zwischen Untertabellen erstellen und Untertabellen konfigurieren. 4) Im Vergleich zu Untertabellen ist die Tabellenpartitionierung einfach zu bedienen und erfordert keine Erstellung von Untertabellen.
3. Mehrere Möglichkeiten, Tabellen zu teilen
3.1 MySQL-Cluster
Es ist keine Untertabelle, spielt aber die gleiche Rolle wie eine Untertabelle. Der Cluster kann die Anzahl der Datenbankoperationen teilen und die Aufgaben auf mehrere Datenbanken verteilen. Der Cluster kann Lesen und Schreiben trennen, um den Lese- und Schreibdruck zu verringern. Dadurch wird die Datenbankleistung verbessert.3.2 Benutzerdefinierte Aufteilung der Regeltabelle
Eine große Tabelle kann entsprechend den Geschäftsregeln in mehrere Untertabellen zerlegt werden. Normalerweise gibt es die folgenden Typen, Sie können aber auch eigene Regeln definieren.Range (Range) – Dieser Modus ermöglicht die Aufteilung der Daten in verschiedene Bereiche. Beispielsweise kann eine Tabelle nach Jahr in mehrere Partitionen unterteilt werden.
Hash (Hash) – Dieser Modus ermöglicht die Berechnung des Hash-Schlüssels einer oder mehrerer Spalten der Tabelle und übergibt schließlich diese Hash-Partition Datenbereiche, die unterschiedlichen Codewerten entsprechen. Sie können beispielsweise eine Tabelle erstellen, die den Primärschlüssel der Tabelle partitioniert.
Schlüssel (Schlüsselwert) – Eine Erweiterung des oben genannten Hash-Modus, der Hash-Schlüssel wird hier vom MySQL-System generiert.
Liste (vordefinierte Liste) – In diesem Modus kann das System Daten nach dem Wert einer vordefinierten Liste aufteilen.
Composite (Composite-Modus) –Die Kombination der oben genannten Modi verwendet den
Angenommen, die Tabellenstruktur hat 4 Felder: Auto-Inkrement-ID, Name, Einzahlungsbetrag, Einzahlungsdatum
Verwenden Sie das Einzahlungsdatum als Regel, um die Tabellen zu unterteilen und jeweils mehrere Tabellen zu erstellen
2011: Konto_2011
2012 :account_2012
...
2015: account_2015
Die App sucht beim Lesen und Schreiben anhand des Datums nach dem entsprechenden Tabellennamen und muss manuell ermittelt werden.
var getTableName = function() { var data = { name: 'tom', money: 2800.00, date: '201410013059' }; var tablename = 'account_'; var year = parseInt(data.date.substring(0, 4)); if (year < 2012) { tablename += 2011; // account_2011 } else if (year < 2013) { tablename += 2012; // account_2012 } else if (year < 2014) { tablename += 2013; // account_2013 } else if (year < 2015) { tablename += 2014; // account_2014 } else { tablename += 2015; // account_2015 } return tablename; }
3.3 Verwenden Sie die Merge-Speicher-Engine, um Untertabellen zu implementieren
Merge-Untertabellen sind in Haupttabellen und Untertabellen unterteilt. Die Haupttabelle ist ähnlich. Es handelt sich um eine Shell, die die Untertabelle logisch kapselt. Tatsächlich werden die Daten in der Untertabelle gespeichert.
Wir können Daten über die Haupttabelle einfügen und abfragen. Wenn wir die Regeln der Untertabellen kennen, können wir die Untertabellen auch direkt bedienen.
Untertabelle 2011
CREATE TABLE `account_2011` ( `id` int(11) NOT NULL AUTO_INCREMENT , `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `money` float NOT NULL , `tradeDate` datetime NOT NULL PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=2 CHECKSUM=0 ROW_FORMAT=DYNAMIC DELAY_KEY_WRITE=0 ;
Untertabelle 2012
CREATE TABLE `account_2012` ( `id` int(11) NOT NULL AUTO_INCREMENT , `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `money` float NOT NULL , `tradeDate` datetime NOT NULL PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=2 CHECKSUM=0 ROW_FORMAT=DYNAMIC DELAY_KEY_WRITE=0 ;
Haupttabelle, alle Jahre
CREATE TABLE `account_all` ( `id` int(11) NOT NULL AUTO_INCREMENT , `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `money` float NOT NULL , `tradeDate` datetime NOT NULL PRIMARY KEY (`id`) ) ENGINE=MRG_MYISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci UNION=(`account_2011`,`account_2012`) INSERT_METHOD=LAST ROW_FORMAT=DYNAMIC ;
Erstellen Sie die Haupttabelle. Manchmal dort ist eine INSERT_METHOD, die die Einfügemethode angibt. Der Wert 0 erlaubt keine Einfügung in die erste Tabelle in UNION;
Bei der Abfrage über die Haupttabelle entspricht dies der gemeinsamen Abfrage aller Untertabellen. Dies spiegelt nicht die Vorteile von Untertabellen wider. Es wird empfohlen, Untertabellen abzufragen.
4. Mehrere Möglichkeiten der Partitionierung
4.1 Bereich
create table range( id int(11), money int(11) unsigned not null, date datetime )partition by range(year(date))( partition p2007 values less than (2008), partition p2008 values less than (2009), partition p2009 values less than (2010) partition p2010 values less than maxvalue );
4.2 Liste
create table list( a int(11), b int(11) )(partition by list (b) partition p0 values in (1,3,5,7,9), partition p1 values in (2,4,6,8,0) );
4.3 Hash
create table hash( a int(11), b datetime )partition by hash (YEAR(b) partitions 4;
4.4 Schlüssel
create table t_key( a int(11), b datetime) partition by key (b) partitions 4;
4.5 Partitionsverwaltung
4.5.1 Neue Partition
ALTER TABLE sale_data ADD PARTITION (PARTITION p201010 VALUES LESS THAN (201011));
4.5.2 Partition löschen
Wenn eine Partition gelöscht wird, werden auch alle Daten in der Partition gelöscht.
ALTER TABLE sale_data DROP PARTITION p201010;
4.5.3 Partitionen zusammenführen
Das folgende SQL führt p201001 - p201009 in 3 Partitionen p2010Q1 - p2010Q3 zusammen
ALTER TABLE sale_data REORGANIZE PARTITION p201001,p201002,p201003, p201004,p201005,p201006, p201007,p201008,p201009 INTO ( PARTITION p2010Q1 VALUES LESS THAN (201004), PARTITION p2010Q2 VALUES LESS THAN (201007), PARTITION p2010Q3 VALUES LESS THAN (201010) );
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der MySQL-Datenbankpartitionierungs- und Tabellenpartitionierungsmethoden sowie Einführung in die Partitionierung und Tabellenpartitionierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

Das Wiederherstellen von gelöschten Zeilen direkt aus der Datenbank ist normalerweise unmöglich, es sei denn, es gibt einen Backup- oder Transaktions -Rollback -Mechanismus. Schlüsselpunkt: Transaktionsrollback: Führen Sie einen Rollback aus, bevor die Transaktion Daten wiederherstellt. Sicherung: Regelmäßige Sicherung der Datenbank kann verwendet werden, um Daten schnell wiederherzustellen. Datenbank-Snapshot: Sie können eine schreibgeschützte Kopie der Datenbank erstellen und die Daten wiederherstellen, nachdem die Daten versehentlich gelöscht wurden. Verwenden Sie eine Löschanweisung mit Vorsicht: Überprüfen Sie die Bedingungen sorgfältig, um das Verhandlich von Daten zu vermeiden. Verwenden Sie die WHERE -Klausel: Geben Sie die zu löschenden Daten explizit an. Verwenden Sie die Testumgebung: Testen Sie, bevor Sie einen Löschvorgang ausführen.

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.
