Blogs

RedMonk

Skip to content

MongoDB is the New MySQL

Ohloh: MySQL vs MongoDB

According to Ohloh, MySQL and MongoDB have little in common. One’s seen commits from over a thousand people, the other shy of sixty. One’s 1.1M+ lines of code, the other not even two hundred thousand. And architecturally, the projects are quite distinct.

But in many respects, MongoDB is the new MySQL.

Not because MongoDB is a replacement, as Joseph Ritchey argues in his piece “MongoDB is the New MySQL.”

It is certainly true that there are instances of MongoDB replacing MySQL. It is equally true that there are instances of MongoDB being replaced. In at least one instance, by MySQL. What MongoDB is doing, however, and doing well, is playing a role similar to the one MySQL began playing a decade ago.

Consider the following:

  • Application Traction:
    MySQL was so popular that Linux distributions offered to install the database as part of their own setup and configuration process. Every new programming language and framework supports MySQL out of the box; for most, the documentation assumes MySQL as your database.

    Today? NoSQL is on the rise, and MongoDB is fast becoming a standard backend for projects small (Calip.so) and large (Cloud Foundry or OpenShift).

  • Enterprise:
    MySQL was driven towards ubiquity by its grassroots success and adoption. Because they suffered from traditional limitations in customer conversion, however, it was to the enterprise market that they turned to ramp up revenue growth. This meant adding features that its base had no use for, but this tradeoff was viewed as necessary [coverage].

    10gen hasn’t yet come to this crossroads. But as they increasingly turn to traditional enterprises like Disney for revenue growth, they are following the MySQL path even more closely.

  • Features:
    A decade ago, MySQL’s lack of features traditionally favored by the enterprise – think stored procedures and triggers – was a virtue for workloads that didn’t require them. This made the database less DBA friendly but more accessible to developers. Further, with the project open source and license compatible with Linux, there were no throttles to adoption. More often than not, availability trumps features. A decade later, MySQL – a feature-poor database relative to the commercial alternatives at the time – was the most popular relational database on the planet.

    What is MongoDB? An even simpler datastore than MySQL, at least from a developer’s perspective. No schema, JSON storage/retrieval. The lack of friction from code acquisition to storing items in Mongo is offsetting concerns about its limitations, just as we’ve seen before.

  • License:
    MySQL employs the GPL as the foundation, along with its copyright, for its dual license revenue model [coverage]. This model relies on the GPL’s reciprocal provisions, which are restrictive compared to permissive licenses such as the Apache, BSD or PostgreSQL.

    MongoDB, similarly, is governed by a restrictive license in the AGPL [coverage], a version of the GPL that closes the so-called ASP loophole. Its drivers are permissively licensed to insulate application providers from the copyleft provisions of the AGPL, but the core product is more restrictively governed than Apache licensed alternatives such as Couchbase.

  • Metrics:
    From a market visibility standpoint, the popularity of MySQL dwarfs that of MongoDB.

    But within developer specific communities, the relative trajectories of the two projects is indicative of greater parity. Here is a map of the mentions of MongoDB vs MySQL via Hacker News Trends, for example.

    MongoDB vs MySQL Mentions on Hacker News

    MySQL remains, then, far more popular. But MongoDB’s accelerating traction is impressive.

  • Technical Criticism:
    The more popular MongoDB becomes, the more criticism it attracts. In this, too, MongoDB is like MySQL. For years, very good database people would happily detail the dozens of reasons that they believed MySQL to be inferior to PostgreSQL, as an example. And yet adoption of the former significantly outpaced adoption of the latter.

    For all of the technical criticism that MongoDB has attracted – and as was the case with MySQL, much of it is warranted – this has not had an obvious impact on the popularity of the project. As long as developer sentiment towards MongoDB remains within acceptable parameters, as in the diagram below, adoption should be unaffected.

    MongoDB Sentiment Analysis: Twitter

    Technology, as is frequently forgotten in this industry, is but one portion of the adoption equation. Enough so that VHS vs Betamax has transitioned from parable to cliche.

    Good technology is important. It is not, however, the sole determinant of success. Ease of use, for example, will often trump features. And availability, more often than not, is more important than all of the above.

Conclusion

MySQL became the most popular relational database on the planet by turning its weaknesses into strengths and successfully leveraging its ubiquity. It was, in that respect, one of the original guerrilla success stories in the open source world.

As the market moves ahead into a world with room for both relational datastores and NoSQL alternatives, we can expect to see patterns from the former repeat themselves within the latter. The most obvious of these, to date, is the degree to which MongoDB is following in the footsteps of MySQL.

It would be foolish to predict the same success that MySQL enjoyed for MongoDB, because the underlying market context has changed. But it is clear that – whether it is intentional on 10gen’s part or no – MongoDB is, according to a variety of metrics, the new MySQL.

What does this mean for MongoDB competitors? It certainly does not preclude success; PostgreSQL, after all, remains a vibrant and important project in spite of MySQL’s massive growth. It does mean, however, that projects competing directly with Mongo would do well to study the market conditions that produced MySQL, because they’re about to play themselves out once more.

All of this has happened before. All of this will happen again.

Disclosure: 10gen, the parent company of MongoDB, is not a RedMonk customer. Several competitive vendors are, however, including Couchbase.

Categories: AltDB, Databases, Open Source.

Tags: , , , , , ,

  • http://ionrock.org Eric

    I see where you are going with this argument, but I think it is a stretch. The big difference b/w MongoDB and MySQL is that MySQL always seemed to be perceived as a low friction database meaning that everyone supported it. Specifically, looking at PHP hosting, it was almost a given that you were given MySQL databases. It only made sense then that things like linux distros made packaging up MySQL prevalent.

    MongoDB on the other hand is doesn’t carry the baseline ease of use. The big reason being it really needs 64bit machine. While shared hosting is a popular platform, I would argue the VPS is closer to the norm for running the current languages of choice (Python / Ruby / etc.). MongoDB really doesn’t do as well with these limited resources.

    I realize there are services such as Heroku that support MongoDB (right?), but again, I don’t think they represent the norm.

    Also, I’m also biased in that I really am not a fan of MongoDB. While it has its strengths, it is a platform that you can use easily, but many things you might assume are not correct and only show up when you’ve become tied to it.

  • http://www.it-wars.com rabah vincent

    Hi guys,

    What about CouchDB, is part of the official distribution Linux packages, and MongoDB isn’t !! Why saying MongoDB ist like MySQL ?

    Regards

    • anon

      “*the* official distribution Linux packages”?

  • Kristian

    So a decade ago, MySQL sucked, and so does MongoDB now. So they must be the same.

    Genius.

    I fell for mySQL hype a decade ago – we said the same shit about it that Mongo touts now – fast as hell lookups due to a lack of structured data. MySQL lacked transactions, replication, foreign keys, and even some data types. But it was FAST! Same shit, different story.

    Go ahead and install mongo and see what happens once you fall into hitting a disk. And if you can’t rely on a disk storage, why have it at all? Anyway, sorry for being so angst – but after being in bed w/it for a few months I learned to hate it. I’ll learn to like it when it adds the MySQL features in a decade ;)

  • http://www.theopenforce.com ZUrlocker

    Steve, very interested article and some good points of comparison. It’s hard to say how this will play out for any of the NoSQL / NewSQL / Mo’SQL vendors. But its worth keeping in mind that we had a conscious strategy to add new capabilities to MySQL (such as Stored Procs, Views, Triggers etc) in order to broaden the audience and the size of the overall addressable market. It was not about improving conversion rates. There’s a much longer discussion warranted on how we grew revenues.

  • Engineer

    This is terrible news. This shows that engineers don’t really take engineering considerations into account when making a choice, so much as popularity and “fads.”

    We saw this with MySQL beating PostgresQL, which was a better solution.

    We see it now with MongoDB, which has already caused major embarrassment for early adopter foursquare, loses data and is crap for scalability, winning out over correctly engineered alternative (most everything else in the NoSQL realm.)

    It is because the quality of engineering is so low, that people choose best single CPU performance over all other considerations– even when choosing a cloud solution!

    Riak is the best choice, I’m pretty certain. If Riak were to lose out, it should lose out to CouchDB. The latter has some nice features and is a diffferent choice. Both are engineered on a quality platform– namely erlang/OTP.

    But because engineers are addicted to “c speed” over quality and production requirements, so many choose MongoDB.

    This is not an illumination on Mongo in a positive way– this is a reflection on the incompetence of software engineers.

  • Pingback: Links 7/7/2011: Linux 3.0 RC 6, CentOS 6.0 Coming | Techrights

  • Pingback: MongoDBは新たなMySQLなのか? « A-Listers

  • Pingback: Stuff The Internet Says On Scalability For July 8, 2011 | Krantenkoppen Tech

  • Pingback: High Scalability - High Scalability - Stuff The Internet Says On Scalability For July 8, 2011

  • Hugh

    MongoDB has an excellent set of features, the use of semi-structured data using JSON/BSON allows for simple query language into value part of key/value. The replica sets are well done and make geo-redundancy easy. You can be up and running on MongoDB in minutes, this is another thing 10gen got right.

    I’m not knocking the other alternatives like Riak, CouchDB and Cassandra, but for us MongoDB has the best feature stuff for our product. There is a tremendous amount of intellectual snobbery in this space, which I have not seen since the c/c++ wars years ago. Don’t believe me, ask one of these guys to explain vector clocks to you….

    How can you tell that MongoDB will be a huge success? Just look at the amount of detractors (haters) the product has, that’s usually proportional to future success.

    We use MongoDB in an Enterprise product sold to Global Fortune 500 companies, there is a much bigger shift happening in the data persistence/database space than appears on the surface so stay tuned.

  • Pingback: Links for July 6th through July 23rd — Vinny Carpenter's blog

  • Pingback: » MongoDB is the new MySql W E N Z I

  • http://twitter.com/assaf Assaf Arkin
  • http://twitter.com/assaf Assaf Arkin
  • http://twitter.com/assaf Assaf Arkin
  • http://twitter.com/assaf Assaf Arkin
  • http://twitter.com/assaf Assaf Arkin
  • http://twitter.com/assaf Assaf Arkin
  • http://twitter.com/assaf Assaf Arkin
  • Roland Bouman

    In my mind there are 2 quite significant differences. 

    – MySQL entered a market dominated by large companies offering relatively costly proprietary RDBMS products. For many cases, MySQL would be a good enough replacement or alternative for Oracle, MS SQL or DB2, but without the attached price-tag. MongoDB on the other hand is one of a fairly large collection of NoSQL databases (and even of document-oriented databases), of which the vast majority is – and always has been – open source. To me that means MongoDB can’t gain the same kind of popularity as MySQL earned by being a cost-effective alternative.
    – The use cases for RDBMS-es in general were quite clear long before MySQL entered the market, so it wasn’t too hard to identify cases where one could successfully deploy MySQL. It may (and probably will) change in the future, but currently there is not a lot of expertise when to choose which NoSQL database. So it’s less clear cut when MongoDB would be a better choice than say CouchDB or Riak or OrientDB. That’s another reason why MongoDB has to share popalarity with other (NoSQL) databases.

    kind regards,

    Roland

  • Pingback: Red Hat Invests in 10Gen: Are you saying No(SQL) when you hear Cloud? - OpenShift Blog