79

I have always only used MySQL and no other database system.

A question came up at a company meeting today and I was embarrassed I did not know: To a developer, what earth-shaking functionality do MS or Oracle offer that MySQL lacks and which allows MS and Oracle to charge for their systems?

skaffman
  • 398,947
  • 96
  • 818
  • 769
KJ Saxena
  • 21,452
  • 24
  • 81
  • 109
  • 4
    The question is formulated like something doesn't allow MySQL to charge for using it. There's nothing that _allows_ MS and Oracle to charge, they just do it. And MySQL is just _different_ - open source. If I wanted, I could write some half-baked save-restore script in half an hour and charge for it. I don't need anything to allow me to do that. – Luka Ramishvili Mar 06 '12 at 12:56
  • 11
    Ok, but to rephrase his question; why might a smart person consider paying for RDBMS X when they could select RDBMS Y for free? – Karl Aug 23 '12 at 19:45
  • 2
    I don't think this question is accurate. MySQL is not free for business use (according to replies here) while MS SQL Server has a version that is. The MS offering isn't that restrictive and allows 10GB database with most features enabled. The question could be reversed, why pay for MySQL when SQL Server is free and has more features. Maybe it is my installation but I find MySQL buggy and slow. – MikeKulls Jun 19 '13 at 03:28
  • 3
    This question appears to be off-topic because it is about comparison of different DBs – Noel Jan 03 '14 at 05:22
  • [Comparison of relational database management systems - Wikipedia](http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems) – Jase Whatson Dec 16 '09 at 10:03

12 Answers12

36

I think other commentators are quite right to highlight all of the extra non-core RDBMS abilities that are bundled with the commercial solutions.

Here is a matrix of Oracle editions and features that would be worth browsing just for an understanding of the "extra" features, particularly in the context of what it would cost to develop and support your own version of them (if that is even possible) on a product like MySQL: https://docs.oracle.com/cd/B28359_01/license.111/b28287/editions.htm#DBLIC116

For example, if you had a requirement that said: "Users shall be able to recover any previous versions of data that they have deleted/updated up to one week after the changes has been committed" then that implies a certain development overhead that I think would be much higher on a system that did not have a built-in feature like oracle's Flashback Query.

Curt
  • 5,518
  • 1
  • 21
  • 35
David Aldridge
  • 51,479
  • 8
  • 68
  • 96
23

The pure RDBMS layers of Oracle and MSSQL offer mainly a more mature programmable environment than MySQL and InnoDB. T-SQL and PL/SQL can't be yet matched by MySQL stored procedures and triggers.

The other differences are syntactic and slight semantic differences which make things easier or harder (like top 500 versus limit/offset).

But the real killer is that there are a ton of integrated tools and services on top of the RDBMS layers of MSSQL (Reporting Services, Analysis Services) and Oracle (Data Warehousing, RAC) which MySQL doesn't have (yet).

Community
  • 1
  • 1
Vinko Vrsalovic
  • 330,807
  • 53
  • 334
  • 373
13

MySQL is not free!

It is widely understood to be free, but if you are selling or distributing software packages that incorporate MySQL, it carries rather severe restrictions. If MySQL must be included in your software distribution (i.e. you are not using it only to serve remote clients), it is free only for Open Source projects or non-profit organizations. If you can manage to completely separate the database and drivers from the rest of your application, and force your customer to download and install MySQL on their own, you're probably okay.

Otherwise, it costs $2,000 / year for the "standard" edition, which is roughly comparable to the cost of licensing SQL Server.

Both are very good databases, but among SQL Server's advantages are:

  • A rich and expressive procedural language (T-SQL)
  • A better query optimizer, and better performance in write-intensive environments
  • A strong set of ancillary tools and capabilities, including a programming environment, an ETL tool (SSIS), dimensional modeling (SSAS), a reporting environment (SSRS), and a reasonably sophisticated job scheduler.
  • Interactive debugging of stored procedures and UDFs.
  • A relatively easy-to-use window-based management tool that lets you do most administration tasks in a "clicky" way.

Many people are ideologically opposed to using Microsoft tools, or being locked into a Windows environment, and I can understand that. But MySQL is NOT free for business usage, and that doesn't seem to be widely understood.

To review MySQL's licensing policy, take a look at it at their website: https://www.mysql.com/about/legal/licensing/oem/

Curt
  • 5,518
  • 1
  • 21
  • 35
  • I agree - MySql is not free (there is no such thing as a free lunch). However I think that many of Microsoft products are not that good - except Visual Studio). Sybase seems to be a very good database IMHO – Ed Heal Dec 04 '12 at 23:59
  • 3
    Ha, I was actually one of these people. I really thought MySQL was free, completely free no matter what. Just a quick question, do you have some stats/link where I can see the "better query optimizer, and better performance in write-intensive environments". – John Crawford Jul 30 '13 at 11:03
  • 35
    False. The community version of MySQL is licensed under the GNU GPL v2 license, which means that you can USE the software for free for any purpose. (If you want to MODIFY AND REDISTRIBUTE the software, then the modified product must be offered under the same GPL v2 open source license; but its mere USAGE, and even MODIFICATION (as long as you don't redistribute the modified product) is free for any purpose without conditions.) – Luca Oct 23 '13 at 10:52
  • That's not quite right. Please see the following FAQ at gnu.org: http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#GPLInProprietarySystem – Curt Oct 23 '13 at 17:57
  • 9
    Curt, (1) we are not talking about incorporating MySQL in another program, but using it as a separate software (in a client-server architecture); in your FAQ: "If the two programs remain well separated [...] then you can treat them as two separate programs" (2) even if you really incorporate MySQL in a proprietary software (i.e., you use it as a library), you don't have to relicense your proprietary software under GPL as long as you don't redistribute it. In your FAQ: "The GPL says that any extended version of the program must be released under the GPL IF IT IS RELEASED AT ALL" – Luca Oct 24 '13 at 12:53
  • http://www.xaprb.com/blog/2009/02/17/when-are-you-required-to-have-a-commercial-mysql-license/ – Peter Clotworthy Dec 02 '14 at 19:17
  • Could we update this answer because what he said is completely incorrect and will mislead new users looking for information. as SacredSkill and Luca pointed out. – Ludger Feb 09 '16 at 10:42
9

Some other things which oracle has over mysql.

  • Queues
  • internal job scheduling
  • mature stored procedure language
  • patitioned tables
  • fine grained access control and auditing
  • strong recovery features ( eg flashback, rman, dataguard )
  • remote database links
  • application express
Matthew Watson
  • 14,083
  • 9
  • 62
  • 82
  • 5
    MySql supports partitioned tables (explicitly) since 5.1. http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html – Sharique Jul 28 '11 at 05:13
8

Until I administered RDBSes from other vendors Oracle oft repeated "readers don't block writers, writers don't block readers' meant little to me. I really didn't know much about handling locking problems in 8 years as an Oracle DBA. 2 years of Informix and 3 or SQL Server and trust me I know lots more about locking.

So I would say, in addition to the comments about support and non-RDBMS features, add locking behaviour.

Karl
  • 3,312
  • 21
  • 27
  • Same basic codebase on a 1m row table with 100s of read/updates per second on the same set of rows will make Oracle shine and (at the time) make SQL Server spin lock into oblivion. Yes, things have changed, but the point is that as much dislike as I have for the Oracle corporation, their database product is top-notch. – Jé Queue Dec 18 '09 at 04:27
  • SQL Server Snapshot Isolation solves this very real problem with Microsoft SQL Server - added in SQL Server 2008 – NTDLS Aug 23 '12 at 16:57
5

There are too many functionality to list. See Wikipedia reference in nullptr's message. But I suppose that really question asked at meeting is "To a developer, what earth-shaking functionality do MS or Oracle offer that MySQL lags in which allows MS and Oracle to charge for their systems and which can be effectively utilized by our company?"

All advantages are really advantages if matched with your needs ...

ThinkJet
  • 6,725
  • 24
  • 33
5

Oracle table clusters and single table hash clusters (which you won't find in SQL Server either).

Nils Weinander
  • 2,081
  • 2
  • 15
  • 20
  • 1
    Ah, single table hash clusters -- one lightweight consistent read to find your row. Very cool stuff ... I've seen 10,000 individual row lookups per second on very modest hardware. – David Aldridge Dec 16 '09 at 16:00
4

NOTE: I can't say anything about Oracle, so I will answer for SQL Server only.

Well, of course minor differences in the database engine, like MERGE statement, BULK INSERT, GROUPING SETs etc.

But I think the bigger part are things like Integration Services, Analysis Services and Reporting Services. Those are important technologies which in my opinion are absolutely worth the money they cost.

Maximilian Mayerl
  • 11,253
  • 2
  • 33
  • 40
  • Some people are forced to go with Microsoft SQL Server due to compatability constraints and the headache of implementing Oracle or MySQL within their current systems – JsonStatham Aug 22 '13 at 15:29
4

MySQL didn't offer the richer programming environment that Oracle and MSSQL offered, especially in early incarnations, when it didn't even have Stored Procedures. From my perspective I tend to put most of my business logic into the application, via DAO's or ORM mappers etc. Therefore the database engine underneath is less important and in theory the application is transportable. From a management perspective MSSQL offers a number of benefits (many already listed) that make the task of owning the database a lot easier. Microsoft also provide the excellent and lightweight SQLExpress for development, which I have found easy to work with and it integrates into Visual Studio nicely.

Andy Monis
  • 119
  • 4
  • 2
    The emphasis being on "in theory" when it comes to transportability, I think ;) It seems to be the case that dumbing down the code to the lowest common denominator that allows transportability actually encourages the desire to transport, because avoiding vendor enhancements usually places the database in the bullseye for performance problems. – David Aldridge Dec 16 '09 at 15:52
3

Inspired by ThinkJet's answer, I think that another factor that comes into play is, "To what extent are we willing to forgo database independence in order to provide faster, cheaper development of more performant applications?" If the company's emphasis is that all code must be portable between databases then there is little point in using anything other than the most simple RDBMS, and the improvements and advantages that Oracle and Microsoft have provided count for nothing.

It takes very little to break true database independence, and my philosophy is that you should throw yourself wholeheartedly into leveraging every feature that you've paid for -- SQL enhancements, PL/SQL, etc..

Others may differ, of course.

David Aldridge
  • 51,479
  • 8
  • 68
  • 96
3

I think the question has the implicit assumption that it is development features that allows SQL Server/Oracle to charge. I suspect that it is more the implementation/support.

Hot backup is a major feature that is worth paying for, at least for most installations.

For Oracle, a big added value is RAC - multiple servers hitting the same data (ie same disks) without any messy replication involved. It (generally) isn't apparent to the developer.

Gary Myers
  • 34,963
  • 3
  • 49
  • 74
1

Some Oracle features I really like are

  • Real Application Clusters, a quite powerful way to make database clusters
  • Fast refreshable materialized Views, a very efficient way to store and update query results
  • Analytic functions (aka window functions) which allow grouping functions on a subset of the query results in a efficient way. This can avoid self-joins in most cases.

As far as i I know, none of these is available in MySQL. And there are many more useful features, especially in the enterprise edition and its options.

Karl Bartel
  • 3,244
  • 1
  • 29
  • 28