Tuesday, May 26, 2009

MySQL can be great for Oracle…

Since the Sun acquisition was announced I continue to get questions on how it will impact MySQL. This seems to be mainly as a result of the close affinity between PHP and MySQL. I must admit that while I had a lot of immediate thoughts when the IBM/Sun rumor was floating around, I have had a bit of a harder time figuring out what the Oracle/Sun acquisition means for the various pieces of Sun's business including MySQL.

Like many I believe that Oracle would not want to kill MySQL and that steering it more towards the SQL Server market as opposed to Oracle DB could make a lot of sense for Oracle. After all, MySQL definitely competes with SQL Server on ease-of-use and some of the mainstream relational DB features, while for the very high-end features, Oracle is still way ahead (Real Application Clusters, Database Resident Connection Pooling, Backup & Recovery, Data Mining, OLAP). But what will it take to steer MySQL towards SQL Server? Invest in better Windows packaging? Improve performance on Windows? Invest in native management UIs? Build a strong Visual Studio plug-in for MySQL? Make .NET-based applications like Dotnetnuke work better with MySQL? I think it means all of the above and probably some additions I didn’t think of. All that said, I have now changed my mind and believe this is not where the big opportunity lies for Oracle although I see it as a strong secondary strategy and believe Oracle is likely to benefit from executing in this direction regardless.

The other assumption I heard from many was that MySQL would be the entry version for Oracle into accounts. But how would that work in real life? Would they over time build Oracle API (OCI) compatibility into MySQL and hope that at some point people will install Oracle, migrate their data from MySQL to Oracle, and rewrite their applications to access Oracle instead of MySQL? This does make some good sense for Oracle especially as it’d give them a chance to build mindshare and awareness among developers for the their brand. However, brand awareness and account foot print is not enough and I believe this simplistic view does not take into account the user experience. For the user there would be too many challenges in having to swap out the database with a new one, do the data migration and port the application from MySQL to Oracle APIs. In fact, it could be such a pain that users would likely prefer to invest time in working around the MySQL limitations at the application layer instead of doing a migration especially if they are in a time sensitive situation (which MySQL users have been doing successfully for years).

A few days ago I finally figured out what I would do if I were Oracle. I would go out and build an Oracle storage engine for MySQL similar to the DB2 for i storage engine MySQL developed with IBM.(http://solutions.mysql.com/engines/ibm_db2_storage_engine.html) Just think of it as using MySQL as a front-end to Oracle and immediately leveraging the eco-system of developers, applications and tools that support MySQL (see Diagram 1 below). I would then continue to push MySQL’s adoption as much as possible and build out the features that will continue to drive broad adoption.

At this point MySQL would tie directly into Oracle and immediately when a customer needs an Enterprise-grade features like clustering, hot-backup, BI, etc. they could just sell their “Oracle DB Infrastructure” which would support MySQL via the Oracle storage engine. The result would be that without changing any application code you would immediately tie into Oracle and then start leveraging some of Oracle’s unique capabilities.

Of course once that happens, Oracle sells another Oracle license, the data sits in Oracle (typically that means it never migrates anywhere else) and over time other applications will likely leverage this data either via the MySQL interface or directly via OCI (Oracle Client Interface).

What is there left to do for Oracle? No need to focus on investing in Enterprise-grade features for MySQL. They just need to make sure that there’s a good Oracle storage engine which enables a click of a button upgrade from MySQL(InnoDB) to MySQL(Oracle). Seamless to the application and the developer. You get the best of both worlds.

This also makes the CIO extremely happy. They would now have the ability to keep business-critical and sensitive data in Oracle while keeping the developers in their organization happy by letting them use MySQL as the front-end.

I believe by making the right investments in MySQL, Oracle can not only grow the MySQL business but also the Oracle DB business. And if played right it may actually enable Oracle to be less aggressive on the business side with the MySQL products which could also make MySQL's customers and community happier.

Disclaimer: I have no bias towards any of these databases and am only stating what I'd do if I were Oracle. In PHP we have great MySQL , Oracle and SQL Server support. We are the corporate Web glue and will always make it easy for our users to leverage their data sources no matter what they are…



What about the additional latency to drive transactions to another database?

While this would likely add some additional overhead to a simple throughput benchmark I believe in real-world scalability scenarios some of Oracle's solutions like RAC, TimesTen in-memory DB, connection pooling, etc. would potentially address some common objections. But then again I am not a DB engineer so I may be completely wrong.


And what happens with Falcon?

Now Oracle owns MySQL and InnoDB there's no need for it anymore.


And what about the Open Database Alliance (http://opendatabasealliance.com/)?

That may be some nuisance for Oracle but as it would be "open" the Oracle storage engine could work with that too and as stated previously such a strategy may actually enable Oracle to be more community focused than Sun and MySQL AB.


Diagram 1:



  1. Hi!

    Personally, I don't see the storage engine coming soon. I think that a more straighforward benefit is that Oracle can now support their customers to build fast websites cheaper. In addition, this may be a way for Oracle to bind web developers.

    I wrote about it in reaction to the SSWUG newsletter (http://www.sswug.org/nlarchive.aspx, input: 04/29/2009 and 04/30/2009)

  2. The purpose of MySQL is not to be more like either MSSQL or Oracle. Those products are very good at being themselves, why would you want to imitate.
    The success of MySQL and PHP and Joomla and so on is in opening up new markets, nonconsumers.
    This is well researched and documented in general, but the specific proof for MySQL is that the "enterprise" features in 5.0 have actually caused mostly trouble for the big market MySQL lives in, although it has made some niche users happy.

    Thus, any analysis involving a line of "MySQL is making good progress towards product X" is I believe flawed in the fundamental presumption. It makes no business sense to imitate. Incumbents tend to win such battles.

  3. If I understand correctly, MySQL could be a free and light-weight version of Oracle. I definitely like the idea.

    What prevents me from using Oracle is the fact that it's too heavy for most of my needs and doesn't come free. With the ability to upgrade at the push of a button, I can start simple and not worry about potential migration.

    Let's just hope that the right people at Oracle read this post.

  4. Crazy but excellent idea!
    What about licensing terms? Is it possible to hook a completely-non-free engine to mysql without the engine getting tainted? Maybe this is a moot isssue, since Oracle owns both...

    It would also be very interesting to know if is technically feasible or if it would be so hard to be not worth pursuing

  5. You know that is one briliant idea! I can't think of a better integration scenario.

  6. Out of all the IT decisions I've made in the past 10 years, buying your product is the one that makes me the angriest. You've spammed me constantly for years, and no email has ever released me from the deluge.

    Die in a fire.

  7. Hello,

    For leveraging traffic from the internet, I have manually collected a list of quality blogs and sites with whom I am interested in getting associated.

    I liked your Site/blog and i'm interested in having my blog's text link in your blog roll or Friends Section.

    To process this link exchange please place my blog on your home page using the
    below info

    Title: PHP Developer

    Url: http://www.adamsinfo.com/php-mysql-developer/

    And send me your link info with confirmation of my link so that I could place
    you link on my blog. We will make link back to you on our home page (PR 5).

    I hope I will hear from you as soon as possible.

  8. Thanks a lot to share good amount of nice content that will improve my knowledge and as I am learning about DBA so it will really help me out.

  9. Actually is not about that one is better than other is because one of them have a specific field, like java or C++ or even visual basic, one doesn't work for everyone.

  10. Nice Post with information regarding use! The ways you have illustrated the information is impressive. Thanks ..... by OPS 571 Final Exam provider.

  11. Fantastic publish I adore your article; enjoy and the choice of identified things, you are doing a great work lots of some others as you through of which kind of beneficial weblogs produce understanding to be able to all of us related to a lot of things. We understand other sorts of fascinating websites from your sites and I'm a great deal serious together with your blogging abilities, My spouse and i additionally begun to produce content and this also kind conversation definitely assist me out and about. My partner and i currently added your own webpage and distributed the internet sites to be able to my own co-workers not simply me personally yet these such as your own writing a blog abilities, wish anyone create additional fascinating weblogs like this one particular along with best of luck for your upcoming information sites.

    Jimmy Wilson-Dean Winchester Jacket for Sale

  12. Your current monthly installments is often came upon in relevancy eight so you'll be able to twelve bi-weekly repayments, or even still, if the instant car title loans house mortgage can depend upon your own Sociable Stability income, so we're ready to merely schedule your payments to own gotten through three to four regular monthly prices. Persistently qualified repayments guide to form a reduced verify entire that's the higher go along with your money state of affairs.

  13. This is really great information about MYSQL and its role and great importance in oracle segment with excellent content.
    Web Designing Companies | Web Design Company India

  14. Everybody need to be aware of the to A legitimate degree high venture rates charged by day propels. day credits ar essentially reasonable payday advance to be no genetic if this may be the last choice to support. might this content have made all individuals aware of what day progresses ar and later encounter the issue day markdown.