Beispiel einer datenbankübergreifenden Abfrage in MySQL

Beispiel einer datenbankübergreifenden Abfrage in MySQL

Vorwort

In MySQL werden datenbankübergreifende Abfragen hauptsächlich in zwei Situationen unterteilt. Eine davon sind datenbankübergreifende Abfragen innerhalb desselben Dienstes; die andere sind datenbankübergreifende Abfragen zwischen verschiedenen Diensten. Die datenbankübergreifenden Abfragen sind für jeden von ihnen unterschiedlich. Im Folgenden werden diese beiden Arten datenbankübergreifender Abfragen ausführlich vorgestellt.

1. Datenbankübergreifende Abfrage desselben Dienstes

Datenbankübergreifende Abfragen desselben Dienstes müssen nur den Datennamen enthalten, wenn zugehörige Abfragen ausgeführt werden. Das SQL wird wie folgt geschrieben: SELECT * FROM database1.table1 x JOIN database2.table2 y ON x.field1=y.field2; zum Beispiel:

2. Datenbankübergreifende Abfrage verschiedener Dienste

Datenbankübergreifende Abfragen verschiedener Dienste können nicht direkt durch das Anfügen von Dateinamen verknüpft werden. Hierfür wird die Federated Engine in der MySQL-Datenbank benötigt. Der konkrete Ablauf ist wie folgt:

Anforderung: Tabelle A in Datenbank X auf Dienst A muss mit Tabelle B in Datenbank Y auf Dienst B verknüpft sein, um die erforderlichen Daten abzufragen.

1. Überprüfen Sie zunächst, ob die FEDERATED-Engine in der MySQL-Datenbank installiert ist. Verwenden Sie dazu den Befehl „show engines“; siehe unten:

Wie in der Abbildung oben gezeigt, hat MySQL die FEDERATED-Engine installiert, aber die Unterstützung lautet Nein, was bedeutet, dass sie nicht aktiviert ist. Fügen Sie am Ende der Datei my.cnf eine Zeile FEDERATED hinzu und starten Sie MySQL neu. Wenn die FEDERATED-Engine nicht gefunden wird, müssen Sie sie installieren.

2. Erstellen Sie eine Tabelle B in Datenbank X auf Dienst A mit der folgenden Anweisung: CREATE TABLE table_name (……) ENGINE=FEDERATED CONNECTION='mysql://[username]:[password]@[localtion]:[port]/[db-name]/[table-name]'

Hinweis: Die von der FEDERATED-Engine erstellte Tabelle verfügt nur über eine lokale Tabellendefinitionsdatei und die Datendatei befindet sich in der Remote-Datenbank. Diese Engine kann die Funktion des Remote-Datenzugriffs realisieren. Mit anderen Worten: Diese Methode zur Tabellenerstellung erstellt eine Tabellenstrukturdatei in Datenbank X auf Dienst A (also die Tabellenstrukturdatei von Tabelle B in Datenbank Y auf Dienst B). Der Tabellenindex, die Daten und andere Dateien befinden sich ebenfalls in Datenbank Y auf Dienst B, was einer Abkürzung für eine einfache Zuordnung entspricht.

3. Verknüpfen Sie in der Datenbank X auf Dienst A die Tabelle A direkt mit der Tabelle B, um die erforderlichen Daten abzufragen.

Bei diesem Ansatz sind einige Dinge zu beachten:

1) Diese datenbankübergreifende Abfragemethode unterstützt keine Transaktionen. Daher ist es am besten, keine Transaktionen zu verwenden.

2) Die Tabellenstruktur kann nicht verändert werden.

3) MySQL verwendet diese datenbankübergreifende Abfragemethode. Derzeit unterstützt die Remote-Datenbank nur MySQL, andere Datenbanken werden nicht unterstützt.

4) Die Tabellenstruktur muss exakt mit der Zieldatenbanktabelle übereinstimmen.

Zusammenfassen

Dies ist das Ende dieses Artikels über datenbankübergreifende Abfragen in MySQL. Weitere relevante Inhalte zu datenbankübergreifenden MySQL-Abfragen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Datenbankübergreifende Assoziationsabfragemethode in MySQL
  • Beispiel für eine gemeinsame MySQL-Remote-Datenbankabfrage

<<:  Analyse von Multithread-Programmierbeispielen unter Linux

>>:  JavaScript zur Implementierung eines einfachen Karusselldiagramms, umfassendste Codeanalyse (ES5)

Artikel empfehlen

Beispiel für die Implementierung eines gestrichelten Rahmens mit html2canvas

html2canvas ist eine Bibliothek, die Canvas aus H...

JavaScript-HTML zur Implementierung der mobilen Red Envelope Rain-Funktionsseite

In diesem Artikelbeispiel wird der spezifische HT...

So implementieren Sie verteilte Transaktionen in MySQL XA

Inhaltsverzeichnis Vorwort XA-Protokoll So implem...

Analyse mehrerer Situationen, in denen der MySQL-Index fehlschlägt

1. Prinzip des besten linken Präfixes – Wenn mehr...

So implementieren Sie eine Remote-Verbindung für Redis unter Linux

Nachdem Sie Redis unter Linux installiert haben, ...

Implementierung der MySQL GRANT-Benutzerautorisierung

Bei der Autorisierung geht es darum, einem Benutz...

JS implementiert einen einfachen Zähler

Verwenden Sie HTML, CSS und JavaScript, um einen ...

Apropos ContentType(s) von image/x-png

Dies führte auch dazu, dass PNG-Dateien nicht hoch...

Vue+Bootstrap realisiert ein einfaches Studentenverwaltungssystem

Ich habe Vue und Bootstrap verwendet, um ein rela...

Beispiel zum Aktivieren langsamer Abfragen in MySQL

Vorwort Das langsame Abfrageprotokoll ist eine se...

So verwenden Sie Docker zum Bereitstellen eines Django-Technologie-Stack-Projekts

Mit der Popularität und Reife von Docker ist es a...