Query Join Tabel Mysql Berbeda Server

ilustrasi multiple databaseMySql merupakan database opensource yang powerfull, di artikel sebelumnya saya pernah membahas tentang optimasi database mysql, walaupun opensource tetapi mysql mempunyai kemampuan yang tidak bisa dianggap remeh. Macam engine di database mysql juga banyak, masing-masing mempunyai kemampuan yang berbeda-beda. Di artikel ini kita akan membahas tentang bagaimana membuat query join antar tabel tetapi tabel-tabel tersebut tidak dalam server atau host yang sama, tabel berada di server / host yang berbeda. Query yang kita buat sama seperti halnya query join biasanya, tetapi disini kita memanfaatkan engine Federated.

  • Buat Tabel dengan Engine Federated

Tujuan membuat tabel dengan engine federated ini digunakan untuk sebagai tabel yang akan di join di server yang  berbeda, jadi tabel federated yang di buat di server lokal bisa menampung data dari tabel yang berada di server yang berbeda. Kemampuan storage engine federated dapat menghubungkan server terpisah mysql ke dalam satu database.

CREATE TABLE `tb_agama` (
  `kd_agama` char(1) NOT NULL DEFAULT '' COMMENT 'PK kode agama dari tabel agama',
  `nama` varchar(20) NOT NULL DEFAULT '' COMMENT 'nama-nama agama',
  PRIMARY KEY (`kd_agama`)
) ENGINE=FEDERATED
DEFAULT CHARSET=latin1 
COMMENT='Tabel Agama'
CONNECTION='mysql://user:password@host:3306/database/tabel';
  • Query Join

Coba kita joinkan dengan tabel tb_mhs yang sudah saya buat terlebih dahulu, kemudian kita buat query joinnya seperti ini.

select * from tb_mhs a join tb_agama b on b.kd_agama=a.kd_agama

hasil query join

Jadi kesimpulannya disini bahwa data pada tabel agama tidak benar-benar berada di database lokal, tetapi sebenarnya data berada di server yang berbeda, jika anda menerapkan data terdistribusi bisa menggunakan mekanisme tabel dengan storage engine federated.

Artikel Lain

Leave a Comment