Я ищу различные типы баз данных и СУБД для нового проекта, который я хочу начать летом.
Я построил системы в MySQL и PostgreSQL, теперь я хочу расширить свои знания и опыт в области баз данных.
Мой проект будет чем-то вроде социальной сети / совокупного знания. (еще не разработали термин, чтобы описать его).
Я смотрю на:
- Кассандра (использовать свой собственный тип языка запросов); Кажется, это хорошо для многофункционального контента и обеспечения высокой производительности выполнения запросов. Однако я не слишком заинтересован в этом, потому что для работы требуется среда Java, и я предпочел бы не иметь ничего общего с Oracle.
- MongoDB (noSQL тип СУБД); отличная масштабируемость, однако вы теряете все возможности, уже доступные на проверенном языке SQL, такие как запросы бизнес-информации.
Требования к системе:
- Текст данных , даты, время, XML, маленькие целые, BLOB,
- Структура / поведение : нормализованная 3NF, не в реальном времени, реляционная, масштабируемая, устойчивая
- Окружающая среда: Unix / Linux, нет JAVA !, желательно работать на C
Мне было интересно, не могли бы вы указать мне какие-либо другие системы баз данных, которые я должен изучить.
Я также взглянул на объектно-реляционные базы данных, мне очень понравилась идея их работы с объектами PHP (PDO), однако их производительность кажется немного плохой.
Учитывая, что здесь будут администраторы баз данных, мы будем благодарны за любые отзывы об этих системах, которые вы использовали.
Благодарность
источник
Ответы:
Ваши абстрактные требования кричат мне "PostgreSQL". Однако я думаю, что стоит быть в курсе того, чем занимается буржуазия, поэтому вот список различных вещей, которые вы, возможно, захотите проверить.
Бесплатные вещи
Странные бесплатные вещи
Несвободные вещи
Вывод
Я не использовал ни одну из этих вещей широко. Я немного поиграл с большинством из них и всегда возвращался к PostgreSQL. Глядя на ваши требования, единственное, что PostgreSQL не соответствует стандарту - это масштабируемость. С другой стороны, для моих целей гораздо проще использовать 4000 долларов оборудования на одной выделенной машине базы данных, чем 4000 долларов облачных узлов или компьютеров низкого уровня для решения этой проблемы. И есть способы достижения масштабируемости с PostgreSQL, например с EnterpriseDB .
С этими вещами очень весело играть, но когда приходит время складывать ценные, невоспроизводимые производственные данные во что-то, на первый план выходит куча скучных атрибутов, таких как надежность, стабильность и долговременная жизнеспособность.
Мысленный эксперимент для вас
Учти это. Представьте, что вы Марк Цукерберг, и вам нужно либо отказаться от своей базы кода, либо от своих данных. Вы можете оставить весь свой персонал разработки, но вы должны либо отказаться от всего своего кода - каждой строки, скажем, даже все воспоминания разработчиков о том, как они реализовали все, исчезли, - но вы сохраняете все свои учетные записи пользователей и всех своих пользователей загруженными. данные и все такое, или вы можете отказаться от всех данных. Сохраните все структуры, серверы и конфигурацию, настройку, но потеряйте каждую строку в каждой таблице в каждой базе данных.
Должно быть очевидно, что было бы хуже потерять данные. Почему все ваши пользователи восстанавливают все эти данные? Подумайте обо всех потерянных маркетинговых данных, как Facebook на самом деле зарабатывает деньги. И есть множество предпринимателей, которые слюноотделают при возможности заставить людей использовать свой клон Facebook - теперь все те лишенные права голоса бывшие пользователи Facebook будут там, рассматривая альтернативы. С другой стороны, если бы они потеряли кодовую базу, они могли бы восстановить ее, возможно, даже лучше, чем сейчас, но они могли бы получить что-то в сети в очень короткие сроки. Черт возьми, они могли бы купитьчужую клонированную кодовую базу Facebook и загрузите ее с реальными данными, но вы не можете просто скопировать их данные. Если Facebook по-прежнему хранит важные данные всех на своих серверах, стимул уйти гораздо ниже. Все еще плохо, но намного меньше. Удивительно меньше.
Ирония заключается в том, что гораздо проще потерять все ваши данные в результате странной аварии, чем потерять весь ваш код. Для большинства интернет - компаний, однако, данные является компанией, она является наиболее ценным активом. И это веская причина для рассмотрения вопроса об использовании традиционной, проверенной временем, устаревшей несексуальной реляционной базы данных.
источник
Также учтите, что нет никаких причин, по которым вы не можете использовать реляционную базу данных для некоторых вещей и базу данных nosql для других вещей.
источник
Говоря о nosql, у меня есть только одна вещь, которую нужно добавить о ссылке на Facebook:
Если вы планируете масштабировать очень большие, я предлагаю вам дружественный к системному двигателю DB и дружественный разработчик.
Выход из дружественного к разработчикам и сверхбыстрого MongoDB, который не может масштабироваться географически, и не имеет возможности эффективно и легко делать резервные копии. Хотя здесь мы используем MongoDB, кажется, Riak или CouchDB выглядят лучше в спецификациях для системных администраторов (у меня нет опыта работы с Riak или CouchDB)
источник