Вопрос

У меня есть приятель, который управляет веб-приложением для людей, личищихся автомобилей на продажу. Есть несколько тысяч клиентов, которые его используют, и каждый клиент имеет сотни, а иногда и тысячи строк в базе данных (некоторые были в течение 5 лет с сотнями автомобилей, продающих каждый месяц, а 10-е годы на продажу (комментарии, сообщения, так далее)). Он запускает эту систему в одной базе данных SQL Server на одном физическом сервере с 20 ГБ или RAM и пару процессоров в течение всего времени, без проблем. Это какое-то чудо?

Как и большинство программистов, я не DBA и просто получаю, благодаря ОРМ и т. Д. Везде, как я смотрю, люди говорят о необходимости осколка или получить отдельный сервер базы данных для больших пользователей веб-приложения. Почему это? Это действительно это неэффективно иметь большую БД с большим количеством или рядами? Должен ли я планировать использовать Кассандру или что-то, или я могу полагаться на расширение скважины с Postgres?

Это было полезно?

Решение

Я лично не думаю, что описал, это большая база данных. Сервер (20 гигонов RAM?;)) Звучит прилично. Это больше о использовании и дизайне. Если база данных проиндексирована и хорошо спроектирована, она может расти много, намного больше на текущем оборудовании.

Прежде чем делать какие-либо коммутаторы, я бы просто посмотрел на архивирование бесполезных данных и оптимизирующих запросы, если есть страх перед проблемами производительности.

Другие советы

Причина Sharding и отдельных серверов БД заключается в том, что в какой-то момент он будет дешевле использовать несколько более дешевых машин, чем один дорогой. Цена оборудования не масштабируется линейно с производительностью, и как только вы достигнете определенного момента, что будет намного дешевле, чтобы получить вдвое больше машин, чтобы получить машину, в два раза быстрее.

У вас не должно быть проблем в SQL Server, Oracle или любой современной реляционной или неаллической базе данных. Я вводил базы данных с 100 миллионами записей и терабайт данных.

Обычно вы разделяете компоненты на разных серверах, чтобы вы могли легко управлять временем, устойчивостью и производительностью.

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

Разделение веб-сайта или приложения, среди различных серверов легче получить более дешевые машины и больше их. Таким образом, вы можете построить в устойчивости, а не иметь компонентов, которые имеют подобные требования к обращению к аппаратному покрытию.

Также важно подумать о временах восстановления для серверов и планов восстановления.
Что произойдет, когда ваша машина умирает, вы можете заменить его в согласованную время? Можете ли вы восстановить из резервных копий в то время?

SQL Server или другие базы данных корпоративных классов не должны иметь никаких проблем с базами данных 10 или 100 ГБ, если они не разрабатываются слишком плохо. (У нас есть несколько машин с этой мощностью / использованием, которые вообще не борется.).

В моих мыслях, это ничего. Наличие десятков миллионов строк на нескольких таблицах с размером базы данных, превышающим 10 ГБ, не вызвало проблемы для сервера MS SQL. Конечно, это не слишком быстро с той большим количеством данных, но иначе это работает просто хорошо.

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

Базы данных чрезвычайно эффективны при хранении и извлечения реляционных данных (т. Е. Данные, которые являются структурированными и имеют ссылки на другие данные) - это то, что они предназначены для выполнения. Честно говоря, 99% людей, извергающих к клавишам магазина и Кассандра, и что не имеют никаких подсказки, которые они делают. Сервер базы данных просто отлично для хранения больших объемов данных, особенно если вы готовы поставить немного работы в настройку его правильно.

Тем не менее, есть случаи использования для Cassandra et. al. - Если у вас в основном неструктурированные данные ключа / стоимости или не нуждаются в согласованности или хотите, чтобы осколок для резервирования, это может стоить расследование.

Если вы не являетесь чрезвычайно популярным веб-сайтом, вы, вероятно, можете получить, просто отлично с приличным сервером базы данных - не переключайтесь, пока не решите Зачем Вам нужно переключиться. Переключение в порядке, просто убедитесь, что вы переключаетесь, потому что он предлагает ваши потребности лучше, а также нет потому что это «крутая веская веская вещь»

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top