views:

816

answers:

12

Hi Guys,

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?

+2  A: 

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
SQL Server 2008 added MERGE.
DOK
+4  A: 

Comparison of relational database management systems - Wikipedia

nullptr
+1, excellent summary of features, plus a list of DBMSs I've never heard of...
DCookie
+6  A: 

The pure RDBMS layers of Oracle and MSSQL over MySQL and InnoDB offer mainly a more mature programmable environment, 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 reall killer is 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).

Vinko Vrsalovic
+1  A: 

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
+7  A: 

I think other commentators are quite right to highligh 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: http://www.oracle.com/database/product%5Feditions.html

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.

David Aldridge
+1, good summary of Oracle features.
DCookie
Good info about the Oracle features
hminaya
+4  A: 

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
+1  A: 

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
+1  A: 

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
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
+2  A: 

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

Nils Weinander
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
+1  A: 

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
+2  A: 

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
I sort of missed it. Thanks :)
Crimson
+4  A: 

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
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.
Xepoch