СУБД MySQL и SQL-сервер и СУБД Oracle [закрыт]



Я всегда использовал только MySQL и никакой другой системы баз данных.



сегодня на собрании компании возник вопрос, и я был смущен, я не знал:
Для разработчика, какие функции встряхивания земли предлагают MS или Oracle, которых не хватает MySQL, и которые позволяют MS и Oracle взимать плату за свои системы?

530   12  

12 ответов:

Я думаю, что другие комментаторы вполне правы, чтобы выделить все дополнительные неосновные возможности СУБД, которые поставляются в комплекте с коммерческими решениями.

вот матрица выпусков и функций Oracle, которые стоило бы просмотреть только для понимания "дополнительных" функций, особенно в контексте того, что будет стоить разработать и поддерживать вашу собственную версию их (если это вообще возможно) на таком продукте, как MySQL: http://www.oracle.com/us/products/database/product-editions-066501.html

например, если у вас было требование, которое гласило: "пользователи должны иметь возможность восстанавливать любые предыдущие версии данных, которые они удалили/обновили до одной недели после внесения изменений", то это подразумевает определенные накладные расходы на разработку, которые, я думаю, будут намного выше в системе, которая не имеет встроенной функции, такой как запрос Flashback oracle.

чистые слои СУБД Oracle и MSSQL предлагают в основном более зрелую программируемую среду, чем MySQL и InnoDB. T-SQL и PL/SQL еще не могут быть сопоставлены хранимыми процедурами и триггерами MySQL.

другие различия являются синтаксическими и незначительными семантическими различиями, которые делают вещи проще или сложнее (например, top 500 против limit/offset).

но настоящий убийца в том, что есть тонна интегрированных инструментов и сервисов поверх слоев СУБД MSSQL (Службы Reporting Services, Analysis Services) и Oracle (Data Warehousing, RAC), которых у MySQL нет (пока).

MySQL не является бесплатным!

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

в противном случае он стоит $2,000 / год для "стандартного" издания, что примерно сопоставимо со стоимостью лицензирования SQL Server.

оба очень хорошие базы данных, но среди преимуществ SQL Server являются:

  • богатый и выразительный процедурный язык (T-SQL)
  • лучший оптимизатор запросов и лучшая производительность в средах с интенсивной записью
  • сильный набор вспомогательных инструментов и возможностей, включая среда программирования, инструмент ETL (SSIS), многомерное моделирование (SSAS), среда отчетности (SSRS) и достаточно сложный Планировщик заданий.
  • интерактивная отладка хранимых процедур и пользовательских функций.
  • относительно простой в использовании инструмент управления на основе окон, который позволяет выполнять большинство задач администрирования "клик" способом.

многие люди идеологически против использования инструментов Microsoft, или быть заблокированным в среде Windows, и я это можно понять. Но MySQL не является бесплатным для использования в бизнесе, и это, похоже, не очень понятно.

чтобы просмотреть лицензионную политику MySQL, взгляните на нее на своем веб-сайте:http://www.mysql.com/about/legal/licensing/index.html

некоторые другие вещи, которые Oracle имеет более mysql.

  • очереди
  • внутренняя работа планирование
  • зрелый язык хранимых процедур
  • которые подают прошение таблицы
  • мелкозернистый контроль доступа и аудит
  • сильные функции восстановления ( например, flashback, rman, dataguard)
  • удаленные ссылки на базы данных
  • экспресс-заявка

пока я не ввел Rddses от других поставщиков Oracle часто повторял: "читатели не блокируют писателей, писатели не блокируют читателей" мало что значило для меня. Я действительно мало что знал о проблемах с блокировкой за 8 лет работы в качестве Oracle DBA. 2 года Informix и 3 или SQL Server и поверьте мне, я знаю намного больше о блокировке.

поэтому я бы сказал, что в дополнение к комментариям о поддержке и функциях, не связанных с СУБД, добавьте поведение блокировки.

там слишком много функций, чтобы перечислить. См. ссылку Википедии в сообщении nullptr. Но я полагаю, что действительно вопрос, заданный на встрече, заключается в том, что " разработчику, какая потрясающая функциональность MS или Oracle предлагает, что MySQL отстает, что позволяет MS и Oracle взимать плату за свои системы и которые могут быть эффективно использованы в нашей компании?"

все преимущества, действительно преимущества, если совпадают с вашими потребностями ...

Oracle таблица кластеров и одиночные табличные хэш-кластеры (который вы также не найдете в SQL Server).

примечание: Я ничего не могу сказать о Oracle, поэтому я отвечу только за SQL Server.

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

но я думаю, что большая часть-это такие вещи, как Службы Integration Services, Analysis Services и Reporting Services. Это важные технологии, которые, на мой взгляд, абсолютно стоят тех денег, которые они стоят.

MySQL не предлагал более богатую среду программирования, которую предлагали Oracle и MSSQL, особенно в ранних воплощениях, когда у него даже не было хранимых процедур. С моей точки зрения, я склонен вкладывать большую часть своей бизнес-логики в приложение, через DAO или ORM mappers и т. д. Поэтому компонент database engine ниже менее важен, и теоретически приложение является переносимым. С точки зрения управления MSSQL предлагает ряд преимуществ (многие из них уже перечислены), которые делают задачу владеть базой данных намного проще. Microsoft также предоставляет отличный и легкий SQLExpress для разработки, с которым мне было легко работать, и он хорошо интегрируется в Visual Studio.

вдохновленный ответом ThinkJet, я думаю, что еще один фактор, который вступает в игру: "в какой степени мы готовы отказаться от независимости базы данных, чтобы обеспечить более быструю и дешевую разработку более производительных приложений?"Если акцент компании заключается в том, что весь код должен быть переносимым между базами данных, то нет никакого смысла использовать что-либо, кроме самых простых СУБД, а улучшения и преимущества, которые предоставили Oracle и Microsoft, учитываются ничего.

требуется очень мало, чтобы сломать истинную независимость базы данных, и моя философия заключается в том, что вы должны полностью использовать каждую функцию, за которую вы заплатили-улучшения SQL, PL/SQL и т. д..

другие могут отличаться, конечно.

Я думаю, что вопрос имеет неявное предположение, что это функции разработки, которые позволяют заряжать SQL Server/Oracle. Я подозреваю, что это больше реализация/поддержка.

горячее резервное копирование-это основная функция, за которую стоит платить, по крайней мере, для большинства установок.

для Oracle большой добавленной стоимостью является RAC-несколько серверов, поражающих одни и те же данные (т. е. одни и те же диски) без какой-либо беспорядочной репликации. Это (как правило) не очевидно для разработчик.

некоторые функции Oracle мне очень нравятся

  • реальные кластеры приложений, довольно мощный способ сделать кластеры баз данных
  • быстрое обновление материализованных представлений, очень эффективный способ хранения и обновления результатов запроса
  • аналитические функции (aka window functions), которые позволяют эффективно группировать функции на подмножестве результатов запроса. Это может избежать самосоединения в большинстве случаев.

насколько я знаю, ни один из них они доступны в MySQL. И есть еще много полезных функций, особенно в enterprise edition и его опциях.

Comments

    Ничего не найдено.