Подтвердить что ты не робот

Как разделить Mysql на MULTIPLE SERVERS?

Я знаю, что горизонтальное разбиение... вы можете создать много таблиц.

Как вы можете сделать это с несколькими серверами? Это позволит Mysql масштабироваться.

Создать таблицы X на серверах X?

Помогает ли кто-нибудь объяснить или у вас есть хороший учебник для начинающих (шаг за шагом), который учит вас разбивать на несколько серверов?

4b9b3361

Ответ 1

В MySQL люди обычно делают так называемое приложение sharding.

Вкратце, у вас будет та же самая база данных на нескольких серверах баз данных. Но он не будет содержать одни и те же данные.

Итак, например:

Users 1 - 10000: server A
Users 10001 - 20000: server B

Sharding (конечно) не является методом резервного копирования, он предназначен для распространения чтения и записи через кластер.

Методами, используемыми для очертания, являются MySQL-Proxy, например. Это ничего, что изобрел HScale, это более или менее простой LUA script, который распространяет чтение и запись на разные серверы. В куске MySQL должно быть много примеров.

Другим инструментом (на основе MySQL Proxy) является SpockProxy. Полностью адаптирован к очертаниям. Они также избавились от Lua, и они работали над разными вещами, чтобы сделать его более быстрым, чем прокси. До сих пор я тестировал только SpockProxy, но никогда не запускал его на производстве.

Теперь, помимо этих прокси, вы можете окунуться в себя. Обязательным является таблица-мастер, например:

-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------

Затем создайте свои чтения и записи на сервере. Не очень красиво, но это работает. Следующим препятствием было бы сделать его более заманчивым. Так, например, server1, server2 и server3 каждый должен быть небольшим кластером.

И последнее, но не менее важное: еще один интересный подход к разделению данных и индексов на серверах - это Digg IDDB. Я не уверен, что они когда-либо выпускали свой код, но их сообщения в блогах дают подробные сведения о том, что он делает.

Сообщите мне, если это поможет!

Ответ 2

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

  • вы вошли в систему и выбрали DB (DB swap) на основе таблицы user-organization
  • Это будет новая мастер-таблица, с которой вы сейчас разговариваете с ее собственными подчиненными
  • Но пункт 2 выше также требует осколки, поскольку вы хотите убедиться, что ваш масштаб не станет узким местом.

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

приветствия! Gary

Ответ 3

Вот что написано в объявлении HSCALE 0.1:

Сейчас нам нужно просто расстаться огромные столы, но потом мы хотим распределять разделы по нескольким У экземпляров сервера MySQL есть реальные горизонтальный шкала вне. Самая тяжелая часть будут иметь дело с транзакциями где мы должны использовать распределенные транзакции (XA) или запрет транзакции с участием разделов на разные хосты...

Посмотрите на этот проект: http://sourceforge.net/projects/hscale/, возможно, он вам подойдет.