MariaDB несколько БД разделены между несколькими серверами - могу ли я сделать запрос, как будто они все находятся на одном экземпляре? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть такой сценарий: у меня есть приложение PhP 5.6, которое подключается к экземпляру MariaDB (редактировать: я ранее указывал MySQL, но это неверно).В этом случае у меня есть «основная» БД и БД для каждой фирмы, использующей приложение.Каждая новая фирма -> новая БД.

Количество БД растет в геометрической прогрессии, и мы рассматриваем способ разделения БД этих клиентов между несколькими серверами MariaDB.

Проблема заключается в том, что существуютмножество запросов, которые соединяются между клиентской БД и главной БД, поэтому мы не можем вслепую просто подключиться к другому Хосту.

Можно ли настроить экземпляр MariaDB, у которого есть базы данных на других хостах, но все же «фактически видит их» какна том же экземпляре (чтобы кросс-запросы к БД все еще работали)?

Я пытался гуглить без успеха.

Заранее спасибо!

РЕДАКТИРОВАТЬ: Яузнал о федеративных таблицах, которые могут быть решением.Вопрос в том, что нам нравится разделять БД между серверами, потому что у нас может быть несколько БД в диапазоне 50.000-100.000, и мы боимся производительности.Если я создам эти БД локально с федеративными таблицами, решит ли это мою проблему или мы все еще сталкиваемся с проблемами производительности?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Звучит так, как будто вам нужен FederatedX, чтобы добраться до common базы данных с клиентской базы данных.

И "sharding" помещает несколько клиентов на каждый из несколько серверов.Не один клиент на каждом из серверов 50K.

Или есть какие-то требования, которые вы еще не предоставили?

Насколько велики эти "клиенты"?Насколько большой самый большой?Существуют ли проблемы безопасности, если на одном сервере находятся несколько клиентов?В том же экземпляре MariaDB?В той же таблице ?

Вы уже настроили какую-либо форму прокси-сервера для перенаправления клиентского запроса на сервер для этого клиента?Или вы ожидаете, что клиент будет владеть своим сервером?

и т. Д. И т. Д.

Имейте в виду, что доступ к "объединенной" таблице происходит медленно, в некоторых случаях порядковмедленнее .Поэтому усердно работайте над тем, чтобы свести к минимуму потребность в федерации.

Другим подходом будет меньшая нагрузка на отдельные запросы, но больше усилий администратора - дублирование «общей» базы данных во всех шардах.Вероятно, это можно сделать с помощью репликации, если «общий» сервер будет Мастером, а все Осколки - Рабами.

0 голосов
/ 04 декабря 2018

Вы можете использовать Firebase, это гораздо быстрее, чем MySQL v. Но если вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...