2016-10-19 3 views
0

У меня есть две таблицы с именем user и user_posts.Эти две таблицы находятся в разных экземплярах amazone rds. Я хочу присоединиться к этим двум таблицам. Можно ли написать соединение mysql с использованием laravel framework? Спасибо заранее!различные экземпляры rds и joinig две таблицы

+0

Я думаю, что вы хотите получить эквивалент ссылки на базу данных Oracle http://stackoverflow.com/questions/1565993/oracle-database-link-mysql-equivalent –

+0

@DanielScott в системе хранения данных FEDERATED отключен в RDS. –

ответ

0

Это невозможно с помощью RDS.

MySQL имеет FEDERATED storage engine, который позволяет одному серверу получать доступ к таблицам на другом сервере, но он отключен в RDS для MySQL.

В настоящее время Federated Storage Engine не поддерживается Amazon RDS для MySQL.

—   http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html


Clarificarion:

При использовании двигателя FEDERATED хранения, чтобы позволить таблицы с данными на одном сервере, чтобы по всей видимости, существует на другом сервере - тем самым позволяя данные, запрашиваемые с сервера, на котором фактически нет постоянной копии данных - только сервер, на котором нет Фактические данные должны фактически поддерживать двигатель FEDERATED.

Это означает, что в то время как экземпляр RDS не может получить доступ к данным с другого сервера с использованием сервера FEDERATED, не-RDS-MySQL может получить доступ к данным на экземпляре RDS, используя таблицу FEDERATED, настроенную на сервере не-RDS, с таблицей, настроенной для извлечения данных из RDS.

Это потому, что - с точки зрения сервера с фактическими данными - соединение с сервером с использованием FEDERATED выглядит как обычное клиентское соединение. Данные извлекаются с использованием обычных запросов, поэтому поддержка FEDERATED не должна быть доступна на этой стороне ссылки.

Это означает, что сервер без RDS под управлением MySQL может обращаться к данным на одном или нескольких серверах RDS, используя таблицы FEDERATED.

Я использую это для создания отчетов, которые объединяют таблицы на двух (и в одном случае, три) разных экземплярах RDS.

FEDERATED таблицы имеют ограничения - они отображаются на сервере, который извлекает удаленные данные как очень похожие на таблицы MyISAM, в том смысле, что они не поддерживают транзакции и любой запрос, который приведет к полному сканированию таблицы на самом деле будет извлекать всю удаленную таблицу для каждого запроса, которая может обходиться без изъянов ... поэтому их нужно использовать с усердием и осмотрительностью.

Это может оказаться неприемлемым для описанного сценария, поскольку для этого потребуется добавить третий сервер, но это решение не полностью исключается, когда RDS составляет часть инфраструктуры базы данных. Указанная выше информация также верна при использовании RDS/MariaDB и RDS/Aurora для MySQL.

+0

Спасибо большое за ваш ответ – Pillai

+0

@RPillai мое удовольствие.Я продлил ответ, чтобы уточнить, что, хотя 'FEDERATED' не поможет вам с двумя экземплярами RDS, это не * полностью * несовместимо с RDS. –

+0

У меня есть еще одно сомнение. Можно ли подключаться к разным экземплярам rds из одного приложения laravel? – Pillai