Любая СУБД выполняет автоматическое масштабирование, разделение, повторную балансировку? - PullRequest
3 голосов
/ 01 октября 2010

Я думаю, что одно из преимуществ no-sql, такого как MongoDB, заключается в том, что он может автоматически масштабироваться по горизонтали: просто добавьте дешевую машину, и данные могут «распространиться» на новую машину.

Как насчетдля СУБД, любая СУБД также делает это автоматически?

Ответы [ 2 ]

4 голосов
/ 03 октября 2010

Ответ здесь "вид".MySQL действительно не имеет ничего родного «бесплатно».Технологии больших СУБД, такие как MSSQL и Oracle, имеют очень хорошую поддержку для масштабирования.Тем не менее, обе технологии стоят дорого, и через MS SQL невозможно пройти через тысячу серверов и сказать «имейте это в виду».

Конечно, даже с миллионами долларов на серверы и технологии вы все равно не будетеиметь готовый доступ к объединениям.Я имею в виду, как вы можете надежно объединить данные на 500 серверах?

Честно говоря, я думаю на ваш вопрос, вероятно, лучше всего ответит само существование таких технологий, как MongoDB и CouchDB .Эти технологии существуют, поскольку разработчикам б / к нужен способ надежной «горизонтализации».СУБД по своей природе не годятся для горизонтализации.Опять же, как вы можете масштабировать объединение?

2 голосов
/ 01 октября 2010

Я работал только с MySQL, и MySQL поддерживает разбиение. Однако разделение ограничено одним сервером базы данных, что означает, что горизонтальное масштабирование (разделение базы данных на несколько компьютеров) не является чем-то, что управляет механизмом базы данных. Это должно управляться на уровне приложения.

Разделение MySQL, как говорят, очень хорошо работает в сценариях с интенсивной записью.

Чтобы дать вам дальнейшее направление:

Масштабирование MySQL записывает с помощью секционирования в Yahoo

Разбиение базы данных в Netlog

...