Tôi có thể nghĩ ra bốn cách giải quyết khả thi cho tình huống của bạn:
- sử dụng tên bảng đầy đủ-đủ điều kiện khi truy vấn cho bên ngoài bàn. MySQL hỗ trợ
dbname.tablename
-syntax để truy cập các bảng bên ngoài phạm vi cơ sở dữ liệu hiện tại. Điều này yêu cầu người dùng hiện được kết nối phải có quyền thích hợp để đọc từ bảng được yêu cầu trong một db vật lý khác. - nếu cơ sở dữ liệu bên ngoài của bạn đang chạy trên một máy chủ MySQL khác (trên cùng một máy hoặc qua kết nối mạng), bạn có thể sử dụng bản sao để cập nhật liên tục bản sao chỉ đọc của bảng từ xa. Chỉ có thể sao chép nếu bạn đang chạy hai phiên bản MySQL riêng biệt.
- sử dụng
FEDERATED Công cụ lưu trữ MySQL
hầu như nhập khẩu bảng vào cơ sở dữ liệu hiện tại của bạn. Điều này nâng yêu cầu cấp quyền truy cập của người dùng hiện tại vào cơ sở dữ liệu thứ hai vì thông tin đăng nhập được cung cấp vớiCREATE TABLE
-bảng cáo khi sử dụngFEDERATED
Công cụ lưu trữ. Điều này cũng hoạt động với các cơ sở dữ liệu chạy trên các máy chủ vật lý khác nhau hoặc các phiên bản MySQL khác nhau. Tôi nghĩ rằng đây sẽ là tùy chọn hoạt động kém nhất và có một số hạn chế - quan trọng hơn hay ít tùy thuộc vào tình huống sử dụng và yêu cầu của bạn. - Đây là phần mở rộng cho phương pháp 1. Thay vì phải chỉ định tên bảng đầy đủ điều kiện mỗi khi bạn yêu cầu thông tin từ bên ngoài của mình bảng, bạn chỉ cần tạo một chế độ xem
bên trong cơ sở dữ liệu hiện tại của bạn dựa trên
SELECT <
> FROM < >. < > đơn giản . Điều này giống với cách,
FEDERATED
-method hoạt động, nhưng bị giới hạn ở các bảng trên cùng một phiên bản MySQL.Cá nhân tôi coi phương pháp (4) là hữu ích nhất - nhưng những phương pháp khác cũng có thể là cách giải quyết khả thi tùy thuộc vào yêu cầu của bạn.