СУБД MySQL и SQL-сервер и СУБД Oracle [закрыт]
Я всегда использовал только MySQL и никакой другой системы баз данных.
сегодня на собрании компании возник вопрос, и я был смущен, я не знал:
Для разработчика, какие функции встряхивания земли предлагают MS или Oracle, которых не хватает MySQL, и которые позволяют MS и Oracle взимать плату за свои системы?
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