


Detailliertes Beispiel dafür, wie MyBatis die Unterdatenbank und Tabellenuntererklärung der MySQL-Datenbank implementiert
In diesem Artikel werden hauptsächlich die Funktionsweise und die Zusammenfassung der MyBatis-Implementierung der Unterdatenbank und Tabelle der MySQL-Datenbank vorgestellt
Als Datenbank, als Tabelle in der Datenbank, wenn die Anzahl der Benutzer zunimmt und die Zeit vergeht, wird die Datenmenge eines Tages so groß sein, dass sie schwer zu handhaben ist. Zu diesem Zeitpunkt beträgt die Datenmenge in nur einer Tabelle mehrere zehn Millionen, unabhängig davon, ob sie abgefragt oder geändert wird. Zu diesem Zeitpunkt ist eine Datenbanksegmentierung erforderlich. Die einfachsten Schritte zum Implementieren von Untertabellen in MyBatis
Da der Titel des Artikels so geschrieben ist, ist er praktischer Gehen Sie direkt zu den praktischen Informationen. Schauen wir uns zunächst an, wie die einfachste Untertabelle implementiert wird. 1. Das Datenvolumen unserer simulierten Benutzertabelle übersteigt mehrere zehn Millionen (obwohl dies eigentlich unwahrscheinlich ist) 2 Der ursprüngliche Name der Benutzertabelle lautet
, und wir teilen Es wird inund
unterteilt (eigentlich handelt es sich möglicherweise nicht um einen so zufälligen Namen), sodass die ursprünglichen zig Millionen Daten in zwei Tabellen mit einer Datenmenge von zwei Millionen aufgeteilt werden können. 3. Wie bedient man diese beiden Tabellen? Zur Unterscheidung verwenden wir die Benutzer-ID, die eindeutige Kennung des Benutzers.user_tab
4. user_tab_0
s Benutzeroperationstabelle user_tab_1
, ebenso
5. Wie implementiert man also die SQL-Anweisung in MyBatis? Das Folgende ist ein Beispiel für die Abfrage der SQL-Anweisung eines Benutzers userId%2 == 0
user_tab_0
userId%2 == 1
user_tab_1
Darunter übergeben wir zwei Parameter tabIndex und userId ist der Indikatorwert der Operation Tabelle (0 oder 1). Wenn Sie also den Benutzer abfragen müssen, dessen Benutzer-ID 5 ist, lautet die endgültige SQL-Anweisung:
<select id="getUser" parameterType="java.util.Map" resultType="UserDO"> SELECT userId, name FROM user_tab_#{tabIndex} WHERE userId = #{userId} </select>
Andere redundante DAO-Dienste und Implementierungen sind hier. Ich werde Ihnen nicht zu viel zeigen, ich glaube, Sie sind klug genug, es zu tun.
Das Obige ist die einfachste Implementierung. Es sind keine zusätzlichen Frameworks oder Plug-Ins erforderlich, um die Anforderungen von Untertabellen zu erfüllen.
SELECT userId, name FROM user_tab_1 WHERE userId = 5
Ich werde aus den folgenden Perspektiven darüber sprechen. Ich habe es in der einfachsten Umgangssprache ausgedrückt.
Trennungsmethoden
Es gibt zwei Hauptarten der Segmentierung: horizontale Segmentierung und vertikale Segmentierung. 1. Horizontale Segmentierung Um es einfach auszudrücken: Teilen Sie eine Tabelle in mehrere identische Tabellen auf, und dann sind die Tabellennamen unterschiedlich. Genau wie das einfachste Beispiel oben.
Diese Art der Segmentierung eignet sich für Situationen, in denen die Datenmenge in einer Tabelle zu groß ist und die Betriebszeit verlangsamt wird, z. B. bei einigen Tabellen mit gespeicherten Datensätzen.
2. Vertikale Segmentierung
Teilen Sie verschiedene Geschäftsmodule in verschiedene Datenbanken auf (vereinfacht gesagt, sie haben nichts miteinander zu tun).
Dies eignet sich vor allem für Situationen, in denen die Datenmenge im Allgemeinen groß ist und die Geschäftsszenarien verstreut sind und keine logische Beziehung zwischen ihnen besteht.
Trennungsstrategie
Sie können auch Ihre eigenen Strategien entwerfen: Es ist nur eine Liste ohne auf Details einzugehen. 1. „%“ Modulo, das im obigen Beispiel implementiert ist, ist auch das einfachste. 2. MD5-Hash
3. Datum und Uhrzeit (Teilen Sie die Tabellen nach verschiedenen Daten auf, z. B. eine Tabelle pro Monat, und bearbeiten Sie diesen Monat Tabelle wird nächsten Monat ersetzt)
5. Aufzählungsbereich (Benutzer 1-10000 bedienen die erste Tabelle, Benutzer 10001-20000 bedienen die zweite Tabelle)
Das Problem der Trennung
Lassen Sie uns über den letzten Punkt und die damit verbundenen Probleme sprechen.
Die Datenbank ist definitiv nichts, was man allein teilen kann. (Menschen sind emotionaler, wie können sie einfach Schluss machen?) Im Ernst, ich habe die folgenden Probleme aufgelistet, die eine Trennung nur verursachen wird. 1. Das Problem der Eindeutigkeit des Primärschlüssels beim Hinzufügen mehrerer Tabellen ist, dass der ursprüngliche selbsterhöhende Primärschlüssel nicht eindeutig ist, sodass es keine Möglichkeit gibt, sich selbst zu erhöhen, was zu Problemen führt. und es gibt Lösungen, wie zum Beispiel die Pflege einer separaten Primärschlüsseltabelle speziell zum Speichern des aktuellen Primärschlüssels oder die Verwendung anderer Middleware usw.
2. Obwohl das Effizienzproblem beim Hinzufügen neuer Daten kein großes Problem darstellt, erhöht das Hinzufügen neuer Daten definitiv den Rechenaufwand. Dieses Problem kann ignoriert werden.
3. Das durch die Abfrage verursachte Paging-Problem ist sehr schwierig. Dabei wird auch berücksichtigt, dass unterschiedliche Trennungen unterschiedliche Lösungen erfordern.
4. Ebenso war es bei verwandten Abfragen ursprünglich sehr einfach, eine Tabelle mit einer anderen Tabelle oder eine andere Tabelle mit einer Tabelle zu verknüpfen, aber jetzt ist es nach der Trennung schwierig.
5. Transaktionsprobleme müssen verteilte Transaktionen verwenden, um die ursprünglichen Vorgänge mit Transaktionen abzuschließen. Da die ursprüngliche Transaktion nur eine Tabelle sperrte, müssen jetzt möglicherweise mehrere Tabellen gesperrt werden.
6. Einige Sharding-Strategien verfügen nicht über eine gute Datenskalierbarkeit. Bedeutet das, dass Sie neue Tabellen zum Erweitern erstellen können?
Grundsätze der Trennung
Im Folgenden werden einige Grundsätze der Trennung zusammengefasst, die hauptsächlich auf Referenzen im Internet ohne tatsächliche Grundlage basieren (ich bin weder A Ein DBA mit einem Jahresgehalt von einer Million kann nicht auf so große Datenmengen stoßen, um sie tatsächlich zu testen. Wenn Sie also Fragen haben, weisen Sie diese bitte darauf hin.
1. Wenn du nicht trennen kannst, trenne dich nicht
2. Wenn du weniger trennen kannst, trenne nicht mehr
3
4 , Vermeiden Sie die Verwendung verteilter Transaktionen, hauptsächlich weil es zu schwierig ist und ich nicht weiß, wie es geht
5. Wenn eine einzelne Tabelle weniger als 10 Millionen Datensätze enthält, es wird nicht geteilt
6. Wenn Sie es jetzt nicht teilen, ist es zu spät, es später zu teilen
7. Erweiterung, Kopplung und sorgfältige Überlegung
Wie man eine Trennung erreicht
Lassen Sie uns abschließend über die Methode der Trennung sprechen, die mittlerweile beliebt ist. Das beste DAO-Framework ist MyBatis, aber es gibt noch viele andere Rahmen. Die Trennung wird hauptsächlich auf folgende Weise umgesetzt.
1. Für die native Implementierung ist, genau wie im obigen Beispiel, nichts anderes erforderlich. Verwenden Sie das native Framework, um die Implementierung selbst zu steuern.
Die Vorteile sind: einfache Kontrolle und Eigeninitiative.
Die Nachteile sind: Es gibt viel Code, Sie müssen ihn genau kennen, es ist unpraktisch, ihn zu ändern, und er unterstützt keine komplexe Segmentierung. Beispielsweise müssen Sie nach der Segmentierung einige Paging-Abfragen durchführen , sowie die oben genannten primären Schlüsselthemen usw.
2. Plug-in-Implementierung: Verwenden Sie einige vom Framework selbst entwickelte Plug-ins, um diese Plug-ins zu implementieren, und verwenden Sie dann die Plug-ins, um auf die Datenbank zuzugreifen und eine direkte Trennung zu erreichen.
Die Vorteile sind: weniger Code, einfache Implementierung und gute Skalierbarkeit.
Nachteile sind: schwer zu kontrollieren, begrenzte Trennmethoden und schwer zu lösende Probleme. Keine besonders ausgereiften Plug-ins gefunden.
3. Middleware-Implementierung. Verwenden Sie eine Middleware für den Datenbankzugriff, um vor dem Zugriff auf die Datenbank einige Vorgänge auszuführen und entsprechende Änderungen in SQL vorzunehmen, um eine Trennung zu erreichen.
Die Vorteile sind: geringe Kopplung, gute Skalierbarkeit und die Lösung des Problems verteilter Transaktionen.
Es ist definitiv so: Die Implementierung ist komplex, erfordert das Erlernen der Middleware und kostet viel. Auch die Wartung ist ein großes Problem, falls sie ausfällt. .
Kurz gesagt, jede Methode hat ihre eigenen Vorzüge, aber angesichts der Kosten kostet die erste Methode fast 0,00 €, Sie können loslegen und sie ist einfacher zu kontrollieren, genau wie das oben angegebene Beispiel und die Daten Ich bearbeite gerade: „Wir sind noch nicht so weit, dass wir uns überall trennen müssen, also wähle ich die erste Option.“ Auch empfehlenswert. Wenn Sie ein Plug-in oder eine Middleware finden, die einfacher zu verwenden ist, können Sie sie in den Kommentaren empfehlen.
Zusammenfassung
Im eigentlichen Projekt musste ich den Benutzer trennen, weil es zu viele Kontodatensätze gab und weil die Kontodatensätze vorhanden waren mehr Die meisten davon sind nur Neuzugänge ohne Änderung oder Löschung, und es gibt nur wenige Abfragen. Daher verwenden wir die einfachste Methode, um sie zu trennen und die einfachste Strategie zu wählen. Ich hoffe, dass die obige Zusammenfassung der Prinzipien, Strategien, Methoden und Probleme hilfreich und als Referenz für Sie sein kann. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der Script House-Website bedanken!
Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel dafür, wie MyBatis die Unterdatenbank und Tabellenuntererklärung der MySQL-Datenbank implementiert. 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 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".

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

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.

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.

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.

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten
