SQL (MySQL) против NoSQL (CouchDB)

Я нахожусь в процессе разработки масштабируемого приложения, которое должно хранить много данных. Просто, например, он будет хранить много информации о пользователях, а затем такие вещи, как множество их сообщений, комментариев и т. Д. Я всегда использовал MySQL раньше, но теперь я собираюсь попробовать что-то новое, например couchdb или подобное, которое не является SQL.

У кого-нибудь есть какие-либо мысли или рекомендации по этому поводу?

3 ответа

Решение

Вот цитата из недавнего сообщения в блоге от Dare Obasanjo.

Базы данных SQL похожи на автоматическую передачу, а базы данных NoSQL - на ручную передачу. Когда вы переключаетесь на NoSQL, вы становитесь ответственным за большую работу, которую система выполняет автоматически в системе реляционных баз данных. Подобно тому, что происходит, когда вы выбираете ручной над автоматической коробкой передач Во-вторых, NoSQL позволяет вам повысить производительность системы, исключив множество проверок целостности, выполняемых реляционными базами данных на уровне базы данных. Опять же, это похоже на то, как вы можете повысить производительность своего автомобиля, управляя механической коробкой передач по сравнению с автомобилем с автоматической коробкой передач.

Однако самое заметное сходство заключается в том, что, подобно тому, как большинство из нас не может по-настоящему воспользоваться преимуществами автомобиля с механической коробкой передач, потому что большая часть нашего вождения находится в пробке по дороге на работу и с работы, существует аналогичная суровая реальность. в этом большинство сайтов не в масштабах Google или Facebook и, следовательно, не нуждаются в Bigtable или Cassandra.

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

Теперь, если у вас в команде есть эксперт в области NoSQL, то обязательно посмотрите на это. Но без каких-либо экспертных знаний в команде, не переходите на NoSQL для нового коммерческого проекта.

Обновление: просто чтобы бросить бензин в открытый огонь, вот две интересные статьи от людей из лагеря SQL.:-)

Я не могу дождаться, когда NoSQL умрет (оригинальная статья пропала, вот копия)
Борьба с мышлением NoSQL, хотя это не анти-NoSQL
Обновление: ну вот интересная статья про NoSQL
Осмысление NoSQL

Похоже, сегодня только реальные решения вращаются вокруг масштабирования или шардинга. Все современные базы данных (как NoSQL, так и NewSQL) поддерживают горизонтальное масштабирование прямо из коробки, на уровне базы данных, без необходимости для приложения иметь код шардинга или что-то в этом роде.

К сожалению, для надежного старого доброго MySQL шардинг не предоставляется "из коробки". ScaleBase (заявление об отказе от ответственности: я там работаю) - создатель комплексного решения для горизонтального масштабирования, если хотите, "автоматического шардинга". ScaleBae анализирует ваши данные и поток SQL, разделяет данные по узлам БД и объединяет их во время выполнения - так что вам не придется это делать! И это бесплатно скачать.

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

Вы можете увидеть здесь еще некоторые данные о MySQL, NoSQL...: http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding/

Надеюсь, что это помогло.

Один из лучших вариантов - использовать MongoDB(NOSql dB), который поддерживает масштабируемость. Хранит большие объемы данных, кроме больших данных в виде документов, в отличие от строк и таблиц в sql. Это быстрые, которые следуют за шрейдингом данных. Использует репликационные наборы. обеспечить гарантию данных, которая поддерживает несколько серверов, имеющих основной сервер базы данных в качестве базы. Независимый от языка. Гибкий в использовании

Другие вопросы по тегам