There Is No Reason At All To Use MySQL: MariaDB, MySQL Founder Michael Widenius
sfcrazy writes "In this exclusive interview MySQL founder Michael Widenius talks about the reasons of decline of MySQL, what Oracle is doing wrong and how MariaDB is fast replacing it. There are quite some interesting information in this interview. The take out of this interview is '...there is no reason at all to use MySQL 5.5 instead of MariaDB 5.5. The same will be true for the next generation.'"
Of course, he has an economic interest in getting people to use MariaDB. Hard to argue that Oracle isn't evil though.
...there is no reason at all to use MySQL 5.5 instead of MariaDB 5.5
Or Postgres, which is better than MySQL in numerous objective/technical ways and has been for years.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
The Maria builds have not been particularly special, and its hard to take anything he says about MySQL seriously. So much doublespeak. Stop posting his rants as relevant or news. This is little more than an ad for his support/consulting org.
It's also what Postres fans have been saying for years. Maybe they're right about other things?
As a general rule of thumb, if you need something lightweight, SQLite is the way to go. If you need something more powerful or sophisticated than that, PostgreSQL.
MySQL and spinoffs all occupy an uncomfortable middle ground. 99% of the small web sites which are built around MySQL don't need it.
Most MySQL/MariaDB users wont care at all about this, because there are millions of them who are not Slashdot or Amazon or Facebook - this DB silently powers millions of Internet connected things, and it's just a given that it works, performs, has fit-for-purpose stability. It's a sign of how far OSS has come when people have the luxury of quibbling over WHICH free, capable DB they want to base their business model on.
I want to delete my account but Slashdot doesn't allow it.
JihaDB crashed my filesystem :(
What the heck? That's EXACTLY what OP said. Re-read the sentence you quoted.
HitlerDB deleted all my financial software :(
If you want the "free" version, there isn't a significant difference for 95% of users, agreed. However, MariaDB support is miles better and cheaper than Oracle's "Enterprise MySQL" support is. Also, calling Monty names is cheap and rather unfounded.
I was promised a flying car. Where is my flying car?
Maybe Postgres is a better DB in a theoretical way. It could be that in a brand new design for an application, it will be better in practice as well. However, if you run existing code or use an "off the shelf" open source application, chances are, it will be tested and developed on MySQL/MariaDB and not on Postgres. Until the choice is just as easy to make as the choice for either MySQL or MariaDB, I doubt it's "better" for 90+% of all MariaDB/MySQL users. Those users have a choice for either something that works, or something that will need a lot of porting and testing done. It may seem small and insignificant to Postgres experts to do that, but to those 90+%, it ishttp://developers.slashdot.org/story/13/05/05/2050220/there-is-no-reason-at-all-to-use-mysql-mariadb-mysql-founder-michael-widenius?utm_source=rss1.0mainlinkanon&utm_medium=feed# most likely far beyond their capabilities, probably cost prohibitive and in a lot of cases just not an option at all.
I was promised a flying car. Where is my flying car?
Reading comprehension: don't post without it.
What am I saying, this is Slashdot. Carry on.
I've found JudasDB to be very reliable so far.
My reason is because there is no compelling reason right now for me to switch. Once it is in my next Ubuntu upgrade or my ISP switches to it then I'll do so as well.
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
Michael Widenius has benefited from gathering millions of developers around his product and letting them down.
He cannot sell source code of MariaDB this time, but he still can sell the brand name and the community which has trusted him again to earn another fortune. Fool me once, full me twice...
Especially since sqlite came about. For no-setup, small-size databases, you use that. For more features, if you need em, there's Postgress.
The main reason to stay away from PostgreSQL is its toolset. Specifically, it's almost impossible to find a tool that allows you to analyze and tune it's performance. I say 'almost' because there may be one out there that I haven't found...but I've looked on and off for years, with no results.
For mysql there's lots of tools, like jetprofiler. For oracle you can pay. For SQLite, well, who cares. For psql, it's (as one website put it) a black art. Do you really want that as your back end?
and being purely selfish with ZFS is just nauseating anymore.
Uhm, your saying that its Oracles fault Sun and many other people dont' like the viral nature of GPL and intentionally licensed the software in such a way that prevents your silly fanboy license from being able to leech it? You're saying that its okay for you to have software your way ... but not for anyone else to be free to have it their own way.
You're just another one of the freeloaders. Any talk about liberty is just bullshit your spewing to hide the truth.
My OS has been using ZFS for years without any problems, stop your whining, you got what you intended out of your license. GPL is incompatible with ZFS, not the other way around. Get a clue
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
98% of "web Programmers" wouldn't know a good database if it dragged them out of the parents basement and gave them a blow job.
I would not recommend using Oracle to run a simple web site. It is complete over kill. I would not recommend using MySQL / Maria to run the VISA processing center either.
99.9% of application builders do not even know the value of a good, much less great, DB engine and that is proven out time and time again when you look at their DB schema and all you see are tables. They all insist on doing EVERYTHING on the front end and never get , even when advised about, the amount of power that DB's like Oracle, PostGres, MS-SQL, DB2 and even MySQL have these days. One well written Stored Procedure ( Oracle Speak ). Package ( Oracle Speak ), function ( PostGres Speak ) or Procedure ( MySQL/ MS-SQL Speak ) can eliminate 1000's of lines of java, python, ruby, php ( pick your language ) front end code, and perform the function 1000x faster and more reliably.
Every tool has its use. When you need massive scaleibility, up time in the 5 9's category and support RIGHT FUCKING NOW WITH AN ACTUAL ENGINEER when you dial the toll free number 24/7/365 you get the big dogs like Oracle,MS-SQL or DB2. If those factors are less important then you have other choices like Postgres ( they REALLY need to fix the TXID issue ) which is very powerful but lacks the kind of SLA's that you can get with Oracle / Microsoft. If just getting feedback from the support community is fine the MySQL / Maria are fine choices.
I design VERY large databases that push DB's to their limits. Google had to design their own because nothing off the shelf or even from the FOOS community could handle their requirements but it takes a small army to deal with it and most companies don't have the resources or don't want to have that many people on their payroll.
The bottom line is use the DB that fits your requirements, fits your budget and has the support organization around it so when you have a problem your requirements are met, and it really does not matter who you get it from. Don't be religious about it. ALL of these companies are trying to build the best product to serve their market and that is the bottom line.
Michael Widenius is nothing but a little bitch. He sold his DB to sun for how much again? 1 BILLION dollars I think it was. Now shut the fuck up, go sit on your riches and do MariaDB if you want but stop bitching about what happened to MySQL because he YOU are the idiot who cashed in and sold out.
Hey KID! Yeah you, get the fuck off my lawn!
None of the ones you described use Mysql anyway. Most use nosql
Wikipedia uses MySQL. But it also serves most anonymous hits out of a no-SQL cache.
webscale
Careful, lest two Animal Crossing rejects pop in to start talking about MongoDB.
...my employer says so.
It has basically all the same advantages that MySQL used to have
Except, of course, for the ability to scale down to shared web hosting. A lot of hosting providers appear to refuse to offer PostgreSQL. A comment to a previous story about SkySQL, which appears to be related to MariaDB, claims this is because PostgreSQL lacks per-user storage quotas.
Postgresql is more feature complete, just as fast, and properly free software.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
Oracle has a HUGE economic interest in making sure MySQL sucks bad enough that customers buy Oracle databases instead.
I've abandoned my search for truth; now I'm just looking for some useful delusions.
Big advice to anyone who ever gets the "bright" idea of trying to port a substantial application from MySQL to Oracle: don't. And if your boss tells you that you have to, start looking for a new job, because it's a fool's errand almost guaranteed to fail. Not even *Oracle* would ever recommend porting an app from MySQL to Oracle. The problem is that MySQL does well in many scenarios as long as you humor its quirks, but those quirks you've humored will come back and destroy your performance, or make it outright impossible to port the application to a database like Oracle at some later point in time. The problem is that MySQL has certain rules and constraints that you CAN work around to get acceptable performance, but those work-arounds are either frowned upon, or point-blank prohibited, by databases like Oracle. Rewriting your query to get good performance out of MySQL will almost certainly result in the same query causing Oracle to either reject it, fall flat on its face, ditch its indices, and/or do full table scans to satisfy you.
Replication is inferior, tunability is inferior, enterprise support is inferior. That and InnoDB has come along way for speed.
Fool me once, full me twice...
...empty me the third time?
There is no reason at all to use Microsoft Windows instead of
But people do.
There never was a reason to use MySQL. PostegreSQL was ACID compliant before MySQL was even learning what the acronym meant. PostgreSQL always was a higher quality database.
Here, have 30 karma.
-- Nate
I wouldn't recommend running MySQL to run anything where you actually value referential integrity.
More than a decade ago there were compelling reasons to not use MySQL: Stored Procedures, Triggers, and Transactions for example.
If you wanted these features, you had to look elsewhere because they did not exist at the time.
I hope he's not referring to schtupping.
No, no sig. Really.
ThePromenader
There is every reason to use MySQL: It is integrated in pre-configured LAMP stacks, it is ubiquitous, and it "just works". If MySQL isn't good enough, why would anyone change to MariaDB, which is - and will remain - 99% the same thing?
This appears to be a guy trying to take back a product he already sold. Regrets? Doesn't know what to do with his life? Whatever...
Enjoy life! This is not a dress rehearsal.
You meant to say:
fool me once, shame on
shame on you.
Fool me
you can't get fooled again
Not that you shouldn't use stored procs, etc but you shouldn't become obsessed over it either.
I think it was "Fool me once, shame on... shame on you. Fool me twice... uh... afoolmuhcan't get fooled again."
The reason most application builders do not seem to care much about their database and prefer to do most queries in code is because databases are boring, and 99% of applications do not need extreme performance.
So you just wrote a few stored procedures for those complex queries? That's great! Now suddenly we have TWO code bases we need to keep track of and which need to be version-controlled and compiled/uploaded separately. Not only that, but now you've vendor-locked the application into whatever flavour of the month database and query dialect we are using! Good job. We'll worry about porting the code and migrating the data later on when we'll actually need scalability.
If the database world would actually get their act together, maybe more programmers would be more interested in using databases as intended instead of glorified filesystems.
And replaced it with a custom logistics package from IBM
Mr. Ex-President, is that you?
Serious? Seriousness is well above my pay grade.
It's not revelent until the AMAZON RDS adopts MariaDB over MySQL 5.5!
Based on this first Google result for mysql quota I gather that MySQL quotas per database are easy to enforce using an external tool because of how MySQL storage engines map databases to files.
How is Oracle evil? I've heard this before, but I really don't get it.
Here, these fell out of your post: ' e ' ' ' e. My pleasure.
> 98% of "web Programmers" wouldn't know a good database if it dragged them out of the parents basement and gave them a blow job.
But they would appreciate if it did...
I use HitlerDB to categorize the Downfall parodies on YouTube.
Not that you shouldn't use stored procs, etc but you shouldn't become obsessed over it either.
THIS.
I'd go a step further and say simply never use stored procs. They really cement you into exactly one platform. If you write your code to be DB-agnostic then you're going to have a LOT more flexibility down the road. Oh, and that isn't just flexibility to change DB Vendors - even Oracle has been known to deprecate some of their stuff and if you relied on them that means a lot of rework. If you rely on ANSI SQL you can pretty-much guarantee that it will still work (if you use it right - like not assuming that an unordered query returns results in some particular order).
Some programmers just don't grok SQL either. I can't tell you how many queries I've seen that are implemented with either a wall of SQL, or even a stored procedure, that could be expressed as maybe 10 lines of well-indented SQL written properly. I've seen subqueries nested 10 levels deep that implement simple inner joins - they're worse than trying to read compiler output (especially when nobody bothers to format them). Hint, if your query contains the expression "WHERE 1" a dozen times you're probably doing something wrong.
When you need massive scaleibility, up time in the 5 9's category and support RIGHT FUCKING NOW WITH AN ACTUAL ENGINEER when you dial the toll free number 24/7/365 you get the big dogs like Oracle,MS-SQL or DB2. If those factors are less important then you have other choices like Postgres ( they REALLY need to fix the TXID issue ) which is very powerful but lacks the kind of SLA's that you can get with Oracle / Microsoft.
If you want to use Postgres and you're willing to pay for SLAs, there are plenty of companies who'll quite happily take your money.
I attended Mark Callaghan's presentations at the OpenWest conference (http://www.openwest.org/) this past week where he talked about MySQL -- he's in charge of the MySQL operations at Facebook. It sounds like Oracle has done great things to improve MySQL over the years, especially with InnoDB, and MySQL has become much more robust under Oracle's care than it ever was before. Is MySQL perfect? No. But it's improving, in part, because the community holds Oracle's feet to the fire.
The MariaDB guys borrow Oracle's hard work, improve on it in some cases, and claim their db is better, and rarely give credit to Oracle where credit is due. Welcome to their reality distortion zone. Yes, they're smart, capable, and highly motivated. No, they don't like Oracle. Yes, they have a vested economic interest in marketing MariaDB, and it looks like they've been mostly successful with their message in the open source community.
Fedora includes MariaDB in its distribution, and other distributions include it as well. Thank you, Oracle, for improving MySQL. Thank you, MariaDB, SkySQL, FB and others for encouraging Oracle to improve MySQL.
Phew was reading that and I got worried about my own stored procedures until I saw that last part. I use real comparisons like "WHERE 1=1" so I'm good.
I think a great advantage of SQLite is no stored procedures.
I've seen stored procedures munge backup/restore operations and have all kinds of unintended consequences when a developer is over-aggressive with them.
Then they're difficult to scale versus up-scaling front-ends that run the logic.
As an ex-DB-Admin for ~100 developers, my rule was: no stored procedures.
Science & open-source build trust from peer review. Learn systems you can trust.
I'd like to note that using custom database-layer code makes it very difficult to migrate to a different database platform. As dissimilar as the sql syntax and type handling is across the various rdbms platforms, their "stored procedure" languages are even less compatible.
Fool me once, full me twice...
... Profit!
I use PostgreSQL as my main DB of choice and have done so for years.
Yes there can be certain hangups with stored procedures when it comes to doing something on the back end (ie: NOT through your nicely programmed front end) but there is also the trade off in data integrity.
Two points:
1) I use stored procedures mostly to keep data integrity throughout the DB where a simple FK isn't enough.
I got the concept years ago - I think inspired from Joe Celko - to NEVER put data integrity in the front end. Or specifically, to never RELY on the front end to maintain data integrity. Front ends change, get updated, rewritten, etc.
The database is the last line of defense where your data is concerned. The DB is where you keep the data integrity.
Mostly that is correct table/relationship design and correct use of FKs but if that calls for stored procedures so be it.
2) Someone earlier made this point too but I agree - sometimes it just makes way more sense to use backend procedures for something. Once compiled they are far less overhead than doing it in a front end usually. Plus - again - if your front end changes or you have multiple interfaces that hit the same database then why write (and maintain) that functionality in separate areas when the single stored procedure will do it?
if your front end changes or you have multiple interfaces that hit the same database then why write (and maintain) that functionality in separate areas when the single stored procedure will do it?
Simple - you do that on the server, not on the database. If you have 14 front-ends, they all talk to a single (perhaps scaled in parallel) back-end which implements all application logic, and that talks to the database. The back-end also enforces data integrity (beyond FKs). I'd be interested in an example of what you consider "data integrity" other than a foreign key or unique/non-null constraint.
The front-end should never have access to the database anyway. Sure, give it some ability to do simple input validation to improve responsiveness, but that validation should be repeated on the back side (ideally you use a framework where the back-side just passes the validation rules to the front-side so you aren't coding them twice - I'm talking simple stuff like field lengths, field types, etc).
Business rules should be implemented on the back end as well - once per rule, not once per UI. If there are 14 ways to change the salary field, then there is only one validation rule that ensures the change was approved before being made effective, and so on.
I'm not entirely opposed to the concept of data integrity enforced by the DB, but I'm not quite sure how you're using this term. Every stored procedure that you write is going to make it harder to change database implementations in the future, and it will also make your DB that much harder to upgrade if your vendor changes something. I will say that applications should generally have a layer in-between the presentation layer and the database.
I'd go a step further and say simply never use stored procs. They really cement you into exactly one platform.
Disagree. No matter what language you pick to do your dirty work, you're still having a certain amount of lock-in. Pick what is best for the problem. For me, 99% of the time it will involve stored procs. It is closer to the database so it is faster. Queries can be better optimized and visually easier to debug. There is less I/O involvement as the data gets shuffled around for processing.
Disagree. No matter what language you pick to do your dirty work, you're still having a certain amount of lock-in.
Yeah, but do you want your database server hosting databases for 2000 applications to be held back on an important upgrade because one of those applications uses a stored procedure that isn't ready for the next version? Virtualizing databases is usually a lot harder than virtualizing applications (well, if you want decent performance per dollar/etc). A build system that relies on GCC 3.0 is much less of a liability than an application that only runs on Oracle 8i.
Yeah, but do you want your database server hosting databases for 2000 applications to be held back on an important upgrade because one of those applications uses a stored procedure that isn't ready for the next version? Virtualizing databases is usually a lot harder than virtualizing applications (well, if you want decent performance per dollar/etc). A build system that relies on GCC 3.0 is much less of a liability than an application that only runs on Oracle 8i.
If done right, this shouldn't be a concern. First off, no database should be housing 2000 applications. Secondly, every application should be able to be split apart from other applications on a database. When one database becomes overwhelmed, move some of your applications to a second database. (Hopefully, we're using the same definition of database. There are a couple of similar but different definitions from a technical point of view.) To upgrade, you can start a new database on a new machine and then migrate the different apps at different times. I've done that. I've also done the whole kit and kaboodle all at once. I prefer doing it piece meal because it is easier to migrate, but it requires more forethought -- something I've found most apps lacks. It's not harder to do and doesn't take longer... it just takes more forethought.
To upgrade, you can start a new database on a new machine and then migrate the different apps at different times. I've done that.
Sure, and that's exactly what we do at work as well. The problem is that until the last application is migrated you have a super-expensive database server that could be serving hundreds of applications serving a handful that haven't migrated yet. If the apps don't bundle stuff like stored procedures they migrate much more quickly, and hence your super-expensive DB servers are recycled quickly and not running Oracle 8i for the next decade with two apps on them (sure, you can probably recycle some of the RAM/CPUs/licenses, but it is still a cost sink).
I couldn't tell you exactly how many different databases get run on a server at work, but it certainly ranges from dozens to hundreds if not more. Many databases aren't all that busy, but that doesn't mean that they are no longer needed. Other databases strain the capabilities of the largest servers we can find for them and end up involving more exotic technologies to address. In my experience the ones that are hardest to migrate are the ones with business logic implemented in the database.
You can check one more tool - Valentina Studio http://www.valentina-db.com/en/valentina-studio-overview 14 Feb 2013 in the 5.0 version added support of mySQL/mariaDB , as well as SQLite, PostgreSQL. It is FREE. Works on Mac, Win and Linux. Includes not only db management but powerfull reports that work again on 3 OS.
http://www.postgresql.org/support/professional_support/northamerica/
None of the professional services companies above have good 24/7 support for Postgres?