MySQL проти SQL Server проти Oracle [закрито]


78

Я завжди користувався лише MySQL та жодною іншою системою баз даних.

Сьогодні на засіданні компанії виникло запитання, і я збентежився, що не знав: Розробнику, яку вражаючу функціональність пропонує MS або Oracle, якої не вистачає MySQL і яка дозволяє MS та Oracle платити за свої системи?



4
Питання сформульовано так, як щось не дозволяє MySQL брати плату за його використання. MS та Oracle нічого не дозволяють заряджати, вони просто це роблять. А MySQL зовсім інший - з відкритим кодом. Якби я хотів, я міг написати напівготовний сценарій збереження-відновлення за півгодини та взяти за нього плату. Мені нічого не потрібно, щоб дозволити мені це зробити.
Лука Рамішвілі

11
Гаразд, але переформулюючи його запитання; чому розумна людина може розглянути можливість оплати RDBMS X, коли вона може вибрати RDBMS Y безкоштовно?
Карл,

2
Я не думаю, що це питання є точним. MySQL не є безкоштовним для ділового використання (відповідно до відповідей тут), тоді як MS SQL Server має таку версію. Пропозиція MS не є такою обмежувальною і дозволяє базу даних об’ємом 10 ГБ з увімкненими більшістю функцій. Питання може бути зворотним, навіщо платити за MySQL, коли SQL Server безкоштовний і має більше можливостей. Можливо, це моя установка, але я вважаю, що MySQL глючить і повільно.
MikeKulls

3
Здається, це питання не є темою, оскільки йдеться про порівняння різних БД
Ноель

Відповіді:


36

Я думаю, що інші коментатори цілком праві висвітлити всі додаткові непрофільні можливості СУБД, що входять до складу комерційних рішень.

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

Наприклад, якщо у вас була вимога, в якій було сказано: "Користувачі зможуть відновити будь-які попередні версії даних, які вони видалили / оновили до одного тижня після внесення змін", то це передбачає певні накладні витрати на розвиток, які, я думаю було б набагато вищим для системи, яка не має вбудованої функції, такої як Oracle Flashback Query.


+1, хороший підсумок функцій Oracle.
DCookie

Хороша інформація про функції Oracle
Гектор Міная,

23

Чисті рівні RDBMS Oracle та MSSQL пропонують переважно більш зріле програмоване середовище, ніж MySQL та InnoDB. T-SQL та PL / SQL ще не можуть бути зіставлені збереженими процедурами та тригерами MySQL.

Інші відмінності - це синтаксичні та незначні семантичні відмінності, які полегшують або ускладнюють ситуацію (наприклад, топ 500 проти обмеження / зміщення).

Але справжній вбивця полягає в тому, що є маса інтегрованих інструментів і послуг поверх шарів RDBMS MSSQL (Reporting Services, Analysis Services) та Oracle (Data Warehousing, RAC), яких MySQL ще не має (поки що).


12

MySQL не безкоштовний!

Широко розуміється, що це безкоштовно, але ви продаєте або поширюєте програмні пакети, що включають MySQL, це має досить суворі обмеження. У цих випадках це безкоштовно лише для проектів з відкритим кодом або некомерційних організацій. Якщо вам вдається повністю відокремити базу даних та драйвери від решти програми та змусити клієнта самостійно завантажувати та встановлювати MySQL, ви, мабуть, у порядку.

В іншому випадку для "стандартного" видання це коштує 2000 доларів на рік, що приблизно можна порівняти з вартістю ліцензування SQL Server.

Обидві є дуже хорошими базами даних, але серед переваг SQL Server є:

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

Багато людей ідеологічно проти використання інструментів Microsoft або блокування в середовищі Windows, і я це розумію. Але MySQL НЕ є безкоштовним для ділового використання, і це, здається, не широко зрозуміле.

Щоб переглянути ліцензійну політику MySQL, подивіться її на їх веб-сайті: http://www.mysql.com/about/legal/licensing/index.html


Я згоден - MySql не безкоштовний (безкоштовного обіду не існує). Однак я думаю, що багато продуктів Microsoft не так добре - крім Visual Studio). Sybase видається дуже хорошою базою даних IMHO
Ед Хіл

3
Ха, я насправді був одним із цих людей. Я справді думав, що MySQL є безкоштовним, абсолютно безкоштовним, незважаючи ні на що. Просто коротке запитання, чи є у вас якась статистика / посилання, де я бачу "кращий оптимізатор запитів та кращу продуктивність в середовищах із інтенсивним записом".
Джон Кроуфорд,

34
Помилковий. Версія MySQL для спільноти ліцензована за ліцензією GNU GPL v2, що означає, що ви можете ВИКОРИСТОВУВАТИ програмне забезпечення безкоштовно для будь-яких цілей. (Якщо ви хочете ЗМІНИТИ І РОЗПОДІЛИТИ програмне забезпечення, то модифікований продукт повинен пропонуватися за тією ж ліцензією GPL v2 з відкритим кодом; але його просто ВИКОРИСТАННЯ і навіть МОДИФІКАЦІЯ (якщо ви не перерозподіляєте модифікований продукт) є безкоштовним. для будь-яких цілей без будь-яких умов.)
Лука

Це не зовсім правильно. Перегляньте наступні поширені запитання на gnu.org: gnu.org/licenses/old-licenses/…
Курт

9
Curt, (1) ми говоримо не про включення MySQL в іншу програму, а про використання її як окремого програмного забезпечення (в архітектурі клієнт-сервер); у вашому поширеному запитанні: "Якщо дві програми залишаються добре відокремленими [...], тоді ви можете розглядати їх як дві окремі програми" (2), навіть якщо ви дійсно включили MySQL у фірмове програмне забезпечення (тобто ви використовуєте його як бібліотеку) , вам не потрібно переліцензувати власне програмне забезпечення згідно з GPL, якщо ви не перерозподіляєте його. У вашому поширеному запитанні: "GPL говорить, що будь-яка розширена версія програми повинна бути випущена відповідно до GPL, ЯКЩО ВОЗНАЧЕНО ВИПУСКАНА"
Лука,

9

Деякі інші речі, які оракул має над mysql.

  • Черги
  • внутрішнє планування роботи
  • зріла збережена мова процедур -
  • патіоновані столи
  • дрібний контроль доступу та аудит
  • потужні функції відновлення (наприклад, флешбек, rman, dataguard)
  • віддалені посилання на базу даних
  • заявка експрес

5
MySql підтримує секціоновані таблиці (явно) з 5.1. dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html
Sharique

8

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

Тому я б сказав, на додаток до коментарів про підтримку та функції, що не містять СУБД, додати поведінку блокування.


Одна і та ж основна кодова база в 1-міліметровій таблиці рядків із 100 секундами читання / оновлення в секунду на тому самому наборі рядків змусить Oracle блищати і (на той час) змусити SQL Server заблокувати забуття. Так, ситуація змінилася, але справа в тому, що настільки ж неприязнь, як і я до корпорації Oracle, їх продукт бази даних є першокласним.
Jé Queue

Ізоляція знімка SQL Server вирішує цю справжню проблему з Microsoft SQL Server - додано в SQL Server 2008
NTDLS

5

Функцій для переліку забагато. Див. Посилання на Вікіпедію у повідомленні nullptr. Але я припускаю, що справді питання, яке задається на засіданні: "Розробнику, яку вражаючу функціональність пропонують MS або Oracle, та чи відстає MySQL, що дозволяє MS та Oracle заряджати свої системи та які може ефективно використовувати наша компанія ?"

Усі переваги насправді є перевагами, якщо відповідати вашим потребам ...


5

Кластери таблиць Oracle та хеш-кластери однієї таблиці (яких ви також не знайдете в SQL Server).


1
Ах, хеш-кластери однієї таблиці - одне полегшене послідовне читання для пошуку вашого рядка. Дуже круті речі ... Я бачив 10 000 окремих пошуків рядків в секунду на дуже скромному обладнанні.
Девід Олдрідж,

4

ПРИМІТКА. Я не можу сказати нічого про Oracle, тому я відповім лише за SQL Server.

Ну, звичайно, незначні відмінності в механізмі бази даних, такі як оператор MERGE, BULK INSERT, GROUPING SETS тощо.

Але я думаю, що більшу частину становлять такі речі, як служби інтеграції, служби аналізу та служби звітування. Це важливі технології, які, на мій погляд, абсолютно варті тих грошей, які вони коштують.


Деякі люди змушені користуватися Microsoft SQL Server через обмеження сумісності та головний біль від впровадження Oracle або MySQL в їх поточних системах
JsonStatham

4

MySQL не пропонував більш збагаченого середовища програмування, яке пропонували Oracle та MSSQL, особливо в ранні втілення, коли в ньому навіть не було збережених процедур. З моєї точки зору, я схильний вкладати більшу частину своєї бізнес-логіки в додаток за допомогою DAO або ORM-картографів тощо. Тому механізм баз даних внизу менш важливий, і теоретично додаток можна транспортувати. З точки зору управління, MSSQL пропонує ряд переваг (багато вже перераховані), які значно полегшують завдання володіння базою даних. Корпорація Майкрософт також пропонує чудовий та легкий SQLExpress для розробки, з яким мені було легко працювати, і він чудово інтегрується у Visual Studio.


2
Думаю, наголос робиться на "теоретично", коли мова заходить про транспортабельність;) Здається, випадання коду до найнижчого загального знаменника, що дозволяє транспортувати, насправді спонукає до бажання транспортувати, оскільки уникання покращень постачальника зазвичай база даних у «бичачому оку» для проблем із продуктивністю.
Девід Олдрідж,

3

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

Порушити справжню незалежність бази даних потрібно зовсім небагато, і моя філософія полягає в тому, що ви повинні від усього серця використовувати всі функції, за які ви заплатили - вдосконалення SQL, PL / SQL тощо.

Звичайно, інші можуть відрізнятися.


3

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

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

Для Oracle великою доданою цінністю є RAC - декілька серверів, які потрапляють на однакові дані (тобто на однакові диски), без жодної брудної реплікації. Це (загалом) не є очевидним для розробника.


Я якось пропустив це. Дякую :)
Kshitij Saxena -KJ-

1

Деякі особливості Oracle, які мені дуже подобаються, є

  • Реальні кластери додатків, досить потужний спосіб створювати кластери баз даних
  • Швидкий оновлюваний матеріалізований подання, дуже ефективний спосіб зберігання та оновлення результатів запиту
  • Аналітичні функції (вони ж функції вікна), які дозволяють ефективно групувати функції за підмножиною результатів запиту. Це дозволяє уникнути самоз’єднання в більшості випадків.

Наскільки я знаю, жодне з них не доступне в MySQL. І є набагато більше корисних функцій, особливо в корпоративній версії та її опціях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.