Ответ 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. Я не уверен, что они когда-либо выпускали свой код, но их сообщения в блогах дают подробные сведения о том, что он делает.
Сообщите мне, если это поможет!