Почему используется MySQL, а не NoSQL MongoDB? Вопрос

dede dede 29 Июля 2022 (ред)

Например, почему Quora использует MySQL в качестве хранилища данных вместо NoSQL, таких как Cassandra, MongoDB или CouchDB? Делают ли они какие-либо JOIN над MySQL? Планируется ли переход на другую БД?

1 Комментарий

  1. Я нашел авторитетный ответ. Давайте прочитаем сообщением Adam D'Angelo (основатель Quora и бывший сотрудник FB) 10-летней давности, где он описывает, почему MySQL можно легко масштабировать вручную, хотя, честно говоря, я думаю, что с тех пор стабильность MongoDB улучшилась:

    Если вы разделяете свои данные на уровне приложения, масштабируемость MySQL не является проблемой. Facebook сообщил, что в 2008 г. было запущено 1800 серверов MySQL всего с двумя администраторами баз данных. Вы не можете выполнять соединения между разделами, но базы данных NoSQL в любом случае не позволяют этого. Facebook не подтвердил использование Cassandra в качестве основного источника каких-либо данных, и похоже, что поиск во входящих сообщениях может быть их единственным использованием.

    Эти распределенные базы данных, такие как Cassandra, MongoDB и CouchDB, на самом деле не очень масштабируемы или стабильны. Twitter, по-видимому, уже больше года пытается перейти с MySQL на Cassandra. Когда кто-то сообщит об использовании одной из этих систем в качестве основного хранилища данных для более чем 1000 машин в течение года, я пересмотрю свое мнение по этому поводу.

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

    Why does Quora use MySQL as the data store instead of NoSQLs such as Cassandra, MongoDB, or CouchDB? Are they doing any JOINs over MySQL? Are there plans to switch to another DB?