Основные различия между MongoDB и MySQL:
- Существует разница в представлении данных в двух базах данных. В MongoDB данные представлены в коллекции документов JSON, а в MySQL — в таблицах и строках. Документы JSON можно сравнивать с ассоциативными массивами при использовании PHP и объектами каталогов при использовании Python.
- Когда дело доходит до запроса, вам необходимо поместить строку на языке запросов, который анализирует система БД. Язык запросов называется языком структурированных запросов или SQL, от которого MySQL получил свое название. Это делает вашу БД уязвимой для атак с использованием SQL-инъекций. С другой стороны, запросы MongoDB являются объектно-ориентированными, что означает, что вы передаете MongoDB документ, объясняющий, что вы запрашиваете. Никакого синтаксического анализа не требуется, и к нему придется привыкнуть некоторое время, если вы уже используете SQL.
- Одним из величайших преимуществ реляционных баз данных, таких как MySQL, является операция JOIN. Эта операция позволяет выполнять запросы к нескольким таблицам. Хотя MongoDB не поддерживает соединения, он поддерживает многомерные типы данных, как и другие документы и массивы.
- В MySQL вы можете разместить один документ внутри другого (встраивание). Если вы используете MySQL для создания блога, вам придется создать одну таблицу для комментариев и другую для сообщений. В MongoDB у вас будет только один массив комментариев и одна коллекция сообщений внутри сообщения.
- MySQL поддерживает атомарные транзакции. В одной транзакции может быть несколько операций, и вы можете выполнить откат, как если бы у вас была одна операция. В MongoDB нет поддержки транзакций, и одна операция является атомарной.
- Одна из лучших особенностей MongoDB — это то, что вы не несете ответственности за определение схемы. Все, что вам нужно сделать, это сдать документы. Любые два документа в коллекции не обязательно должны находиться в одном поле. Вам необходимо определить таблицы и столбцы перед сохранением в MySQL. Все строки таблицы имеют одни и те же столбцы.
- Производительность MongoDB выше, чем у MySQL и других реляционных БД. Это связано с тем, что MongoDB жертвует JOINS и другими вещами и имеет отличные инструменты анализа производительности. Обратите внимание, что вам все равно придется индексировать данные, а в большинстве приложений данных недостаточно, чтобы увидеть разницу. MySQL критикуют за низкую производительность, особенно в приложениях ORM. Однако у вас вряд ли возникнет проблема, если вы правильно индексируете данные и используете оболочку базы данных.
- Одним из преимуществ MySQL перед NoSQL, таким как MongoDB, является то, что сообщество MySQL намного лучше, чем NoSQL. В основном это связано с тем, что NoSQL является относительно новой технологией, а MySQL существует уже несколько лет.
- В MongoDB нет инструментов отчетности, а это означает, что тестирование и анализ производительности не всегда возможны. С MySQL вы можете получить несколько инструментов отчетности, которые помогут вам проверить достоверность ваших приложений.
- RDBS функционируют на основе парадигмы ACID, которая является аббревиатурой от (атомарность, согласованность, изоляция и долговечность). Этого нет в базе данных MongoDB.
- В MongoDB есть функция Map сокращения, которая упрощает масштабируемость. Это означает, что вы можете получить полную функциональность базы данных MongoDB, даже если используете недорогое оборудование.
- Вам не нужно придумывать подробную модель БД с MongoDB, поскольку она нереляционная. Архитектор БД может быстро создать БД без детальной модели БД, тем самым экономя время и затраты на разработку.
Итог
Ключевой вывод для интервью: каковы различия между MongoDB и MySQL?