Cabaran: Lakukan gabungan pangkalan data antara dua pangkalan data MySQL yang berada pada pelayan berbeza menggunakan Python's MySQLDB.
Penyelesaian:
Untuk mewujudkan sambungan kepada dua pangkalan data, buat sambungan MySQLDB untuk setiap pelayan menggunakan parameter sambungan yang berasingan. Walau bagaimanapun, operasi cantuman seterusnya tidak boleh dilakukan secara langsung menggunakan MySQLDB kerana ia tidak mempunyai fungsi cantuman silang pelayan.
Pendekatan Alternatif:
Enjin Storan BERSEKUTU:
MySQL menawarkan enjin storan BERSEKUTU, membolehkan anda mengakses jadual dari pangkalan data jauh seolah-olah ia adalah tempatan. Gunakan sintaks berikut untuk mencipta jadual bersekutu:
CREATE FEDERATED TABLE remote_table ( column_1 data_type, column_2 data_type, ... ) ENGINE=FEDERATED CONNECTION='mysql://username:password@server2/database_B';
Pelayan Terpaut Penyelesaian:
Jika menggunakan MySQL tidak boleh dilaksanakan, anda boleh menggunakan DBMS lain yang menyokong terpaut pelayan, seperti Microsoft SQL Server. Di sini, anda boleh mencipta pelayan terpaut untuk menyambung ke pangkalan data A daripada pangkalan data B dan melakukan gabungan menggunakan pertanyaan dalam DBMS perisian tengah.
Pelaksanaan dalam Python:
Bergantung pada pendekatan pilihan anda:
PERSEKUTUAN Enjin:
import MySQLdb # Create a connection to the local database conn_local = MySQLdb.connect(...) # Create a cursor for the local connection cursor_local = conn_local.cursor() # Execute a query to join the local table with the remote table cursor_local.execute(""" SELECT * FROM local_table INNER JOIN remote_table ON local_table.id = remote_table.id """) result = cursor_local.fetchall() **Linked Servers Workaround:**
import pymssql
conn_external = pymssql.connect(...)
cursor_external.execute("""
PILIH *
DARI linked_server_A.database_A.dbo.local_table
INNER JOIN linked_server_B.database_B.dbo.remote_table""")
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Antara Pangkalan Data pada Pelayan Jauh dari Python Menggunakan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!