In einer MySQL-Umgebung mit mehreren Servern kann es erforderlich sein, Tabellen über Datenbanken hinweg zu verknüpfen, die sich auf verschiedenen physischen Servern befinden. In diesem Artikel wird untersucht, wie Sie diesen Inter-Server-Join mithilfe des MySQLDB-Moduls von Python erreichen.
MySQL stellt die FEDERATED-Speicher-Engine bereit, mit der Tabellen über mehrere Datenbanken hinweg definiert werden können auf verschiedenen Servern. Bei diesem Ansatz wird eine „föderierte“ Datenbank erstellt, die einen Verweis auf eine Tabelle auf einem Remote-Server enthält. Um die Föderation einzurichten, verwenden Sie die folgende Syntax:
CREATE TABLE federated_table ( ... ) ENGINE=FEDERATED DEFAULT CONNECTION='connection_string'
Ersetzen Sie „connection_string“ durch die Verbindungsparameter für den Remote-Server.
Als Alternative zur FEDERATED-Speicher-Engine können Sie eine Zwischendatenbank als Datenintegrationsschicht verwenden. Stellen Sie eine Verbindung zur Zwischendatenbank her und erstellen Sie Ansichten, die auf Tabellen in den Remotedatenbanken verweisen. Führen Sie dann Verknüpfungen für die Ansichten innerhalb der Zwischendatenbank durch.
Unter Verwendung des MySQLDB-Moduls von Python für beide Ansätze demonstriert der folgende Code die Verknüpfung zwischen Servern:
import MySQLdb # Establish connections to the remote databases conn_server1 = MySQLdb.connect(...) conn_server2 = MySQLdb.connect(...) # Create cursors cursor1 = conn_server1.cursor() cursor2 = conn_server2.cursor() # Intermediate database approach # Create a view in the intermediate database cursor1.execute(...) # Perform the join on the view cursor1.execute(...) # FEDERATED approach # Create a federated table cursor1.execute(...) # Perform the join on the federated table cursor1.execute(...)
Interserver-Joins in MySQL können entweder mithilfe der FEDERATED-Speicher-Engine oder einer Zwischendatenbank als Datenintegration erreicht werden Schicht. Beide Methoden ermöglichen eine nahtlose Datenintegration und -bearbeitung über mehrere Datenbanken auf verschiedenen Servern hinweg.
Das obige ist der detaillierte Inhalt vonWie verbinde ich MySQL-Datenbanken auf verschiedenen Servern mit Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!