Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

PHPz
Lepaskan: 2023-05-27 14:03:28
ke hadapan
2928 orang telah melayarinya

1. Jenis pertanyaan silang pangkalan data yang pertama ialah pertanyaan bersama antara dua pangkalan data yang berbeza di bawah pelayan mysql yang sama. sama Di bawah pelayan mysql, dua data berbeza boleh ditambah terus ke nama pangkalan data untuk mencapai pertanyaan silang pangkalan data

select * from t_test1 t1, test2.t_test2 t2 where t1.id = t2.id
Salin selepas log masuk

Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

Lakukan pertanyaan sql untuk mendapatkan keputusan

Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

2. Jenis pertanyaan silang pangkalan data yang kedua ialah pelayan mysql yang dipasang pada dua pelayan berbeza (pelayan fizikal) untuk melaksanakan pertanyaan silang pangkalan data Prinsip pelaksanaan adalah serupa dengan pemetaan maya dan perlu digunakan Untuk Federated, satu lagi enjin storan mysql, enjin storan FEDERATED mengakses data dalam jadual dalam pangkalan data jauh dan bukannya jadual tempatan.

Ciri ini membawa kemudahan kepada beberapa aplikasi pembangunan Anda boleh terus membina jadual bersekutu secara setempat untuk menyambung ke jadual data jauh Selepas konfigurasi, data dalam jadual tempatan boleh disegerakkan terus dengan jadual data jauh. Sebenarnya, enjin ini sebenarnya tidak menyimpan data Data yang diperlukan diperoleh dengan menyambung ke pelayan MySQL yang lain. Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

MySQL tidak mendayakan enjin storan bersekutu secara lalai dan perlu didayakan dalam fail konfigurasi

#在[mysqld] 下 添加 federated 然后重启mysql服务就可以了
[mysqld]
federated
Salin selepas log masuk

boleh dilihat seperti yang ditunjukkan di bawah:

#输入命令查看引擎开启状态
show engines;
Salin selepas log masuk

, telah didayakan

Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

dan kemudian anda boleh mencipta jadual maya pada pangkalan data test1, petakan jadual t_test2 pada perpustakaan test2 ke perpustakaan test1

CREATE TABLE `t_test2` (
  `id` int NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb3 COMMENT='远程测试表t_test2' CONNECTION='mysql://root:123456@127.0.0.1:3306/test2/t_test2' ;
/**

CONNECTION='mysql://root:123456$@127.0.0.1:3306/test2/t_test2' 这个配置是关键
root:代表远程数据库的用户
123456:代表远程数据的密码
127.0.0.1:代表远程数据库的ip地址,域名也可以
test2:代表远程数据库的数据库名称
t_test2:代表远程数据库中的哪一张表
**/
Salin selepas log masuk

dan laksanakan pernyataan SQL Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

Anda boleh melihat bahawa jadual t_test2 dicipta sebenarnya tidak wujud, ia hanyalah pemetaan jauh

Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

Anda boleh lihat menggunakan enjin PERSEKUTUAN

Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

Selepas jadual dibuat, anda boleh menulis sql

select * from t_test1 t1, t_test2 t2 where t1.id = t2.id
Salin selepas log masuk

Anda boleh melihat hasil pelaksanaanBagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

Nota mengenai penggunaan federated:

1 Nama jadual yang dibuat secara tempatan mesti wujud pada pelayan jauh dan medan yang dibuat juga mestilah medan dalam jadual jauh, yang boleh dibandingkan dengan Jadual jauh mempunyai lebih sedikit medan, tetapi tidak lebih. Pilih enjin storan setempat Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql

2 tidak mengubah suai struktur jadual jauh

3 Perintah truncate akan Kosongkan data jadual jauh

4 Perintah drop hanya akan memadamkan jadual maya dan bukan jadual jauh

5. Pilih kiraan(*), pilih * daripada had M, N dan penyataan lain dilaksanakan Kecekapan adalah sangat rendah, dan terdapat masalah serius apabila jumlah data adalah besar adalah sangat pantas. Contohnya, pertanyaan berikut adalah sangat perlahan (dengan mengandaikan id ialah indeks utama)

select id from db.tablea where id >100 limit 10 ;
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah pertanyaan silang pangkalan data mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan