Soalan Dua Jadual daripada Pelayan Berbeza dalam MySQL dengan Enjin Bersekutu
Soalan:
Adakah adalah mungkin untuk menyertai jadual daripada dua pelayan MySQL yang berbeza dalam satu pertanyaan?
Penyelesaian:
Ya, mungkin menggunakan Enjin Bersekutu MySQL.
Pelaksanaan:
Untuk menyertai jadual daripada dua pelayan berbeza, anda mesti membuat jadual bersekutu yang menghala ke jadual jauh dahulu. Jadual bersekutu mesti mempunyai struktur yang sama seperti jadual asal.
Berikut ialah contoh mencipta jadual bersekutu bernama federated_table1 yang menunjuk ke jadual jauh bernama table1 pada pelayan1:
CREATE TABLE federated_table1 ( id INT(20) NOT NULL AUTO_INCREMENT, name VARCHAR(32) NOT NULL DEFAULT '', other INT(20) NOT NULL DEFAULT '0', PRIMARY KEY (id), INDEX name (name), INDEX other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://fed_user@server1:3306/db1/table1';
Sebaik sahaja anda telah mencipta jadual bersekutu, anda boleh menyertainya seperti biasa jadual:
SELECT a.field1, b.field2 FROM federated_table1 a INNER JOIN federated_table2 b ON a.field1 = b.field2;
Nota:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyertai Jadual MySQL Merentasi Pelayan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!