For years, the MySQL project has been busy bolting on features to help it compete for attention/market-space with the big boys of relational database land (mainly adding triggers and stored procedures, but also lots of other smaller features). Result: MySQL gets more respect with every passing year, and is now one of the most widely-deployed databases in the world (with the exception of SQLite – does that count?). Other result: MySQL is becoming more monolithic, consuming more memory and system resources.
But wait… the beauty of MySQL was always that it was perfect for web applications, with ultra-fast reads (since web apps spend the bulk of their time reading from, not writing to the database). The majority of the database-backed web consists of weblogs, forums, and various content management systems, where none of the fancy stuff is needed. Modern developers put their logic in application code, not in databases. Isn’t MySQL getting a bit fat for the bulk of sites it serves?
Enter Drizzle, a slimmed-down, microkernel version of MySQL optimized for web applications, with all the cruft that most of us never think about or use removed. O’Reilly: MySQL forks: could Drizzle be the next of the new generation of relational database?
“Aker presents this step as a return to the quick and lightweight MySQL that made it popular in the first place, a database engine that may not appeal to large corporate back offices but can easily power web sites. I see it also as a step back to the philosophy that Aker calls “Databases without business logic”: let the application handle consistency and complex calculations instead of making the database do them. Trust your programmers.”
So what ends up on the cutting room floor? Slashdot:
Akers has already selected particular functionality for removal: modes, views, triggers, prepared statements, stored procedures, query cache, data conversion inserts, access control lists and some data types.
Also interesting: “Aker stated that he is unwilling to support platforms without a proper GNU toolchain, such as Windows.” That means Drizzle will only run on Linux, BSD, and Mac OS.
Maybe it’s the company I keep, but I never seem to hear anything positive about working with the big databases. One person after another talks about working with Oracle and other large database systems as onerous, unnecessarily layered, annoying. Workmate Milan had this to say:
I did oracle database logic in EECS for a year or so and it was just a huge waste of time. I really started believing that the war for business logic in the db vs in the application really just amounted to oracle dba’s getting paid insane amounts of money to fiddle with PL/SQL triggers and procedures. Putting that logic in the application makes more sense to me and allows the application to remain in one, preferably OO (not Java, guess who*) language, and hence easier to maintain. It follows along with the rapid dev and ORM approach, which most developers see value in. DBAs on the other hand see their territory encroached upon. I will be a happy man when Oracle loses its grip over the business world. Oracle represents an aging empire that impedes progress.
* He’s referring to Python.
I can guarantee that of the 150+ sites running on both Birdhouse and the J-School, not a single one has any need for triggers, procedures, or any of the other non-core shiny stuff. Every site I’ve ever worked on would be perfectly happy running on a radically slimmer database, as would the vast majority of the web. Will be interesting to see this project evolve.
5 Replies to “Drizzle vs. Oracle”
For rizzle my drizzle!
Seriously though, I really support this effort. I end up scaling down MySQL’s memory usage every time I install it, and I prefer to keep things in my app that could be in stored procs, constraints, heck, even foreign keys! Let alone views and most everything else that’s new in 5.0
There was a nice LinuxWorld Podcast about Drizzle.
Don Marti interviews Brian Aker, one of the Drizzle guys.
Thanks for the tip on that Ed – downloaded and enjoyed.
Hmmm. Tinpot. So Drizzle offers data redundancy (standby databases, replication), functional indexes, context based indexes, its certified with government standards, meets (or attempts to !) security standards, offers built in backup and recovery mechanisms, captures comprehensive workload statistics to allow performance tuning, scales accross multiple servers in “grid computing”, comes with online 24 hours support, patches for security flaws, etc, etc, etc.
No but Oracle does. And suggesting that DBAs use triggers to maintain their empire is ludicrous, get a grip. Anyone who has used Oracle knows that their database is a world leading product providing innovative database technology that other vendors often implement years later trying (in vain) to catch up.
Joel – The point is that 90% of database-backed web apps have no use for 90% of the features in “enterprise” RDBMSs, and that Orcale etc. is way overkill for most jobs they’re applied to. For the vast majority of sites, Oracle is too expensive, too complicated, and offers zero benefit.