


Eine kurze Analyse von Codebeispielen der MySQL-Datentabellenpartitionierungstechnologie PARTITION
Dieser Artikel führt hauptsächlich eine kurze Analyse der MySQL-Datentabellenpartitionierungstechnologie PARTITION ein und stellt die Partitionierungstechnologien RANGE, LIST und HASH in MySQL vor. Freunde in Not können sich darauf beziehen.
In diesem Kapitel lernen wir die Partitionierungstechnologie (RANGE, LIST, HASH) in MySQL kennen
Die Partitionierungstechnologie von MySQL ähnelt in gewisser Weise der horizontalen Tabellenpartitionierung, wird jedoch durchgeführt Die logische Ebene ist immer noch eine Tabelle für die Anwendung. Mit anderen Worten: Durch die Partitionierung wird eine Tabelle nicht geteilt.
In Mysql 5.1 (nachher) gibt es mehrere Partitionstypen:
RANGE-Partitionierung: Weisen Sie Partitionen mehrere Zeilen zu, basierend auf Spaltenwerten, die zu einem bestimmten kontinuierlichen Bereich gehören
LIST-Partitionierung: Ähnlich wie die Partitionierung nach RANGE besteht der Unterschied darin, dass die LIST-Partitionierung darauf basiert, dass der Spaltenwert mit einem bestimmten Wert in einem diskreten Wertesatz zur Auswahl übereinstimmt.
HASH-Partitionierung: basierend auf dem Rückgabewert eines Benutzer- definierter Ausdruck Um Partitionen auszuwählen, wird dieser Ausdruck anhand der Spaltenwerte der in die Tabelle einzufügenden Zeilen berechnet. Diese Funktion kann jeden in MySQL gültigen Ausdruck enthalten, der einen nicht negativen ganzzahligen Wert
KEY erzeugt Partitionierung: Im Vergleich zur Partitionierung durch HASH besteht der Unterschied darin, dass die KEY-Partition nur die Berechnung einer oder mehrerer Spalten unterstützt und der MySQL-Server eine eigene Hash-Funktion bereitstellt
Dinge, auf die bei der Partitionierung geachtet werden sollte :
1. Definieren Sie bei der Partitionierung entweder nicht den Primärschlüssel oder fügen Sie das Partitionsfeld zum Primärschlüssel hinzu
2. Das Partitionsfeld darf nicht NULL sein, sonst wird der Partitionsbereich bestimmt. Versuchen Sie also, NOT NULL
zu verwenden. Zuerst können Sie überprüfen, ob Ihre MySQL-Version PARTITION
mysql> show plugins; | partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
oder
mysql> show variables like "%part%"; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | have_partitioning | YES | +-------------------+-------+
RANGE-Partition unterstützt
Angenommen, Sie erstellen eine Tabelle wie folgt: Diese Tabelle enthält Mitarbeiterdatensätze von 20 Videotheken und die 20 Videotheken sind von 1 bis 20 nummeriert. Wenn Sie es in 4 kleine Partitionen aufteilen möchten, können Sie die RANGE-Partition verwenden. Die erstellte Datenbanktabelle sieht wie folgt aus:
mysql-> CREATE TABLE employees ( -> id INT NOT NULL, -> fname VARCHAR(30), -> lname VARCHAR(30), -> hired DATE NOT NULL DEFAULT '1970-01-01', -> separated DATE NOT NULL DEFAULT '9999-12-31', -> job_code INT NOT NULL, -> store_id INT NOT NULL -> ) ENGINE=Myisam DEFAULT CHARSET=utf8 -> PARTITION BY RANGE (store_id) ( -> PARTITION P0 VALUES LESS THAN (6), -> PARTITION P1 VALUES LESS THAN (11), -> PARTITION P2 VALUES LESS THAN (16), -> PARTITION P3 VALUES LESS THAN (21) -> );
Wenn Sie Mitarbeiter, die in verschiedenen Zeiträumen gekündigt haben, separat speichern möchten, dann sind Sie hier richtig Kann Das getrennte Datumsfeld (d. h. der Zeitpunkt des Rücktritts) wird als Schlüssel verwendet und die erstellte SQL-Anweisung lautet wie folgt:
mysql-> CREATE TABLE employees ( -> id INT NOT NULL, -> fname VARCHAR(30), -> lname VARCHAR(30), -> hired DATE NOT NULL DEFAULT '1970-01-01', -> separated DATE NOT NULL DEFAULT '9999-12-31', -> job_code INT NOT NULL, -> store_id INT NOT NULL -> ) ENGINE=Myisam DEFAULT CHARSET=utf8 -> PARTITION BY RANGE (YEAR(separated)) ( -> PARTITION P0 VALUES LESS THAN (2001), -> PARTITION P1 VALUES LESS THAN (2011), -> PARTITION P2 VALUES LESS THAN (2021), -> PARTITION P3 VALUES LESS THAN MAXVALUE -> );
Listenpartition
Gleiches Beispiel, wenn diese 20 Videotheken in 4 Regionen mit Vertriebsrechten verteilt sind
+------------------+--------------------------------------+ | 地区 | 音像店 ID 号 | +------------------+--------------------------------------+ | 北区 | 3, 5, 6, 9, 17 | | 东区 | 1, 2, 10, 11, 19, 20 | | 西区 | 4, 12, 13, 14, 18 | | 中心区 | 7, 8, 15, 16 | +------------------+--------------------------------------+ mysql-> CREATE TABLE employees ( -> id INT NOT NULL, -> fname VARCHAR(30), -> lname VARCHAR(30), -> hired DATE NOT NULL DEFAULT '1970-01-01', -> separated DATE NOT NULL DEFAULT '9999-12-31', -> job_code INT NOT NULL, -> store_id INT NOT NULL -> ) ENGINE=Myisam DEFAULT CHARSET=utf8 -> PARTITION BY LIST (store_id) ( -> PARTITION pNorth VALUES IN (3, 5, 6, 9, 17), -> PARTITION pEast VALUES IN (1, 2, 10, 11, 19, 20), -> PARTITION pWest VALUES IN (4, 12, 13, 14, 18), -> PARTITION pCentral VALUES IN (7, 8, 15, 16) -> );
Nachdem Sie es erstellt haben, können Sie die MySQL-Datenspeicherdatei eingeben in der MySQL-Konfigurationsdatei
shawn@Shawn:~$ sudo vi /etc/mysql/my.cnf; [mysqld] datadir = /var/lib/mysql shawn@Shawn:~$ cd /var/lib/mysql/dbName shawn@Shawn:/var/lib/mysql/dbName$ ll 显示如下: 8768 Jun 7 22:01 employees.frm 48 Jun 7 22:01 employees.par 0 Jun 7 22:01 employees#P#pCentral.MYD 1024 Jun 7 22:01 employees#P#pCentral.MYI 0 Jun 7 22:01 employees#P#pEast.MYD 1024 Jun 7 22:01 employees#P#pEast.MYI 0 Jun 7 22:01 employees#P#pNorth.MYD 1024 Jun 7 22:01 employees#P#pNorth.MYI 0 Jun 7 22:01 employees#P#pWest.MYD 1024 Jun 7 22:01 employees#P#pWest.MYI
Wie Sie hier sehen können, werden die Speicherdateien gemäß unserer Definition aufgeteilt
employees.frm = 表结构 employees.par = partition, 申明是一个分区表 .MYD = 数据文件 .MYI = 索引文件
HASH-Partition
HASH-Partitionierung wird hauptsächlich verwendet, um sicherzustellen, dass Daten gleichmäßig auf eine vorgegebene Anzahl von Partitionen verteilt werden.
Wenn Sie Mitarbeiter, die in verschiedenen Zeiträumen beigetreten sind, separat speichern möchten, können Sie das Datumsfeld mieten als Schlüssel
mysql-> CREATE TABLE employees ( -> id INT NOT NULL, -> fname VARCHAR(30), -> lname VARCHAR(30), -> hired DATE NOT NULL DEFAULT '1970-01-01', -> separated DATE NOT NULL DEFAULT '9999-12-31', -> job_code INT NOT NULL, -> store_id INT NOT NULL -> ) ENGINE=Myisam DEFAULT CHARSET=utf8 -> PARTITION BY HASH (YEAR(hired)) ( -> PARTITIONS 4 -> ); #这里注意的是 PARTITIONS, 多了一个 s
Was hier erwähnt werden sollte, ist, dass die obigen Beispiele alle die Myisam-Speicher-Engine verwenden, die standardmäßig unabhängige Tabellenbereiche verwendet, sodass Sie unterschiedliche Werte in sehen können Festplattenspeicher oben. Partitionieren
Die InnoDB-Engine verwendet standardmäßig einen gemeinsam genutzten Tabellenbereich. Sie werden feststellen, dass sie nicht wie Myisam physisch partitioniert ist, sodass Sie die MySQL-Konfiguration ändern müssen 🎜>
shawn@Shawn:~$ sudo vi /etc/mysql/my.cnf; #添加: innodb_file_per_table=1 #重启 mysql shawn@Shawn:~$ sudo /etc/init.d/mysql restart
8768 Jun 7 22:54 employees.frm 48 Jun 7 22:54 employees.par 98304 Jun 7 22:54 employees#P#pCentral.ibd 98304 Jun 7 22:54 employees#P#pEast.ibd 98304 Jun 7 22:54 employees#P#pNorth.ibd 98304 Jun 7 22:54 employees#P#pWest.ibd
Partitionsverwaltung
Partition löschen
mysql> alter table employees drop partition pWest;
Partition hinzufügen
Das obige ist der detaillierte Inhalt vonEine kurze Analyse von Codebeispielen der MySQL-Datentabellenpartitionierungstechnologie PARTITION. 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.
