Назад | Перейти на главную страницу

Любопытно о настройке моего сервера базы данных

Я веб-разработчик днем, но у меня не было такого опыта администрирования серверов, как хотелось бы. Я работаю над некоторыми побочными проектами, которые размещены на сервере linode объемом 512 МБ.

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

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

Будет ли вообще вредно размещать первичную базу данных на другом линоде объемом 512 МБ? Возникнут ли проблемы с задержкой, возможно, с большим объемом операций чтения / записи, если второй блок находится в том же центре обработки данных с частным IP-адресом (192.168.x.x)?

Также я подумываю попробовать MongoDB. Я знаю, что Mongo любит много памяти, потому что он использует файловую стратегию с отображением памяти, но есть ли еще, что я могу уйти с запуском MongoDB на моем линоде 512 МБ вместе с моим приложением или даже на собственном линоде 512 МБ?

Последний вопрос: лучше ли оставить первичный и первый ведомый / реплику в одном и том же блоке, или я должен разделить первый ведомый / реплику, установленный на его собственном блоке?

Лично мне очень нравится MongoDB, но ни один из его ответов не специфичен для Mongo.

Скорее всего, 512 МБ ОЗУ будет недостаточно для вашего сервера БД, если у вас нет тривиального объема данных, и вы не ожидаете, что он сильно увеличится.

Размещение вашей базы данных на отдельном сервере - распространенный и хорошо поддерживаемый сценарий. Хотя между вашим приложением и БД по сети существует большая задержка, чем в одной системе, я предпочитаю, чтобы они были разделены. Если по какой-либо другой причине (а есть и другие), кроме как не дать сбоям одной системы / демона / приложения сжечь весь дом.


Что касается MongoDB, мне он очень нравится за его возможность ускорения. Она проста по концепции, проста в администрировании и обеспечивает (даже поощряет) гибкость вашей модели данных, которую РСУБД просто не может.

Позвольте мне перефразировать некоторые из ваших вопросов.

Нужно ли мне запускать сервер базы данных на отдельном компьютере?

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

Что лучше: база данных Sql или база данных NoSql?

Чтобы создать свое веб-приложение с нуля, я бы посоветовал вам начать с MySql или любых других серверов Sql. Это хорошо поддерживается. Вы можете получить помощь отовсюду. Если вы планируете запустить базу данных с одним узлом, сервер Sql не будет медленнее любой базы данных NoSql. Когда ваш онлайн-бизнес разрастается до очень больших масштабов, вам может потребоваться перепроектировать свою базу данных, чтобы она соответствовала базам данных NoSql.

http://en.wikipedia.org/wiki/NoSQL