Должен ли я использовать отдельные контейнеры Docker для своего веб-приложения?

Я могу придумать четыре возможных обходных пути для вашего сценария:

  1. использовать имена с полной квалификацией-таблицей при запросе таблицы external . MySQL поддерживает dbname.tablename -syntax для доступа к таблицам за пределами текущей области базы данных. Это требует, чтобы пользователь, подключенный в настоящий момент, имел соответствующие права на чтение из запрошенной таблицы в другом физическом db.
  2. , если ваша внешняя база данных работает на другом сервере MySQL (либо на том же компьютере, либо через сеть соединение), вы можете использовать репликацию для постоянного обновления копии удаленной таблицы только для чтения. Репликация возможна только в том случае, если вы используете два отдельных экземпляра MySQL.
  3. используют механизм хранения FEDERATED MySQL для виртуального импорта таблицы в ваш текущая база данных. Это снимает требование предоставления прав доступа к текущему пользователю во вторую базу данных, поскольку учетные данные выдаются с CREATE TABLE -стратетом при использовании механизма хранения FEDERATED. Это также работает с базами данных, запущенными на разных физических серверах или разных экземплярах MySQL. Я думаю, что это будет самый плохой вариант исполнения и имеет некоторые ограничения - более или менее важные в зависимости от вашего сценария использования и ваших требований.
  4. Это расширение метода 1 . Вместо того, чтобы указывать имена полностью квалифицированных таблиц каждый раз, когда вы запрашиваете информацию из вашей внешней таблицы, вы можете просто создать представление в вашей текущей базе данных на основе простой SELECT <> FROM <>.<>. Это похоже на способ работы FEDERATED -метод, но ограничивается таблицами в одном экземпляре MySQL.

    Лично я бы рассмотрел метод (4) как наиболее полезный, но другие могут также быть возможными обходными способами в зависимости от ваших требований.

    21
    задан GabrielOshiro 29 May 2015 в 17:07
    поделиться