12 ms·
Sysbench for MySQL 5.0, 5.1, 5.5, 5.6, 5.7 and 8
- gweinberg 9y agoIt looks like overall things are getting worse as we "upgrade".
- colonelpopcorn 9y agoOracle buys MySQL, slowly kills it by a thousand small cuts to performance...
- mdcallag 9y agoRegression is expected with new features. Oracle has been a great owner for MySQL. I think we, including Oracle, can make progress on this problem.
- matt4077 9y agoWell, people have for years complained about features missing from MySQL–often without noticing that they're complaining about problems that were fixed when Bill Clinton was still president. Adding features without incurring performance penalties is probably hard to pull off. FWIW we're still talking about 10000 queries/sec.
- kator 9y agoIt would be interesting to do this same comparison with MariaDB. I wonder if that project has managed to continue progressing while MySql seems to have regressed. It's super easy for all of us on HN to say "Oh look Oracle ruined another thing". But it would much more interesting to have quantified results to compare from.
- mdcallag 9y agoBlog author here. I think that Oracle has been the best corporate owner for MySQL, much better than Sun and standalone MySQL. I write these posts to document & market the problem and motivate upstream and my team to make things better. I don't think they are ruining MySQL.
- oliwarner 9y agoAs a Postgres user, something I find our community keeps hammering is MySQL's reluctance to do things safely. Be that fsyncing, or what, I'm never entirely sure. I don't mean to further smear MySQL, just point out that this might not be a regression. It might be MySQL fixing bigger issues in default configurations. Spending 18% raw performance might be worth it.
- jacquesm 9y agoThat's why there is MariaDB.
- mdcallag 9y agoHas anyone run similar tests for MariaDB? That is my blog, but I have been too busy with upstream MySQL to test MariaDB.
- chx 9y agoWTF, MySQL is not doing performance regression testing on each commit?? WUT.
- wcarron 9y agoHmmm, consistently deteriorating performance over time is rather suspicious. A move by Oracle to kill off competition for their implementations? I can only speculate, though. It seems odd, though. I guess it's all PostgreSQL all the time for me, from now on.
- lawpoop 9y agoMariaDB is a thing.
- wcarron 9y agoYeah, but why would I use that over PostgreSQL? I already know postgreSQL and it's also THE gold standard for SQL implementations. AFAIAC PostgreSQL is the obvious choice.
- lawpoop 9y agoYou would use it over PostgreSQL because it's a drop-in replacement for MySQL. PostgreSQL is not. If you're not using MySQL in the first place, why would you care?
- wcarron 9y agoBecause sometimes I DO use MySQL because a client requested it. At this point, I'll probably just explain to clients why pg is a much better alternative.
- lawpoop 9y agoFrom a fresh build, I agree with you. However, for MySQL in an existing application, the migration costs might make it not worth it. There can be a number of pernicious gotchas that aren't obvious at first. MariaDB is more or less set-and-forget.
- emfree 9y agoI think the author is specifically evaluating low-concurrency in-memory workloads here. The previous post describes why regressions for those workloads might be "not a surprise": https://smalldatum.blogspot.com/2017/05/the-history-of-low-concurrency.html https://smalldatum.blogspot.com/2017/05/the-history-of-low-c...
- jd007 9y agoIs there any reason nowadays not to deploy one of the more performant forks of MySQL (e.g. Percona, MariaDB)?
- viraptor 9y agoAre they more performant? It would be great to see the comparison on the same benchmark. One reason not to move to mariadb could be slight differences in schema syntax edge cases. But if you're starting from scratch, it doesn't matter.
- jd007 9y agoTypically the forks include many performance tweaks over vanilla and so generally perform better. Here is an old test showing 5.5 differences in performance: http://vbtechsupport.com/657/2/ http://vbtechsupport.com/657/2/ Percona's fork is also much closer to vanilla (than MariaDB), so there shouldn't be any issues even for existing databases. Unless maybe if the system/cluster set up is very complex so there is additional cost for migration. For new projects though, I can't think of any reason to use vanilla over one of the forks.
- devoply 9y agoWould Oracle slowly degrade performance so they could sling their enterprise offerings better.... hmm. However, this is just going to kill MySQL altogether rather than actually achieve its implied goal. I guess you could say, competition always finds a way.
- douche 9y agoIn a world where Postgres exists, and Microsoft SQL Server Express is supported on Linux, what's the advantage of using MySQL?
- my_ghola 9y agoInertia and being good enough at the jobs thrown at it. Everyone for whom MySQL is not enough just move to Postgres and most open source ORM's support both so it's mostly a non issue. At a job I was told we would use Postgres very very shortly before release. All I had to do is change configuration settings and run a command, and that was 5 years ago.
- SwellJoe 9y agoLots of reasons why I still use it: - MySQL/MariaDB are much better tested for almost every OSS web app and framework I use. It may be the only database that is official and thoroughly supported. If I want to interoperate on the same DB across many applications, MySQL/MariaDB is the lingua franca. - It's fast enough. The vast majority of applications never need to scale beyond a few hundred requests per second. Any database on nearly any hardware with sufficient memory will do this. - Aurora. Scale up automagically (not infinitely, but pretty easily) when you do find yourself with an app that needs to scale a lot and fast. - It's fine. Sure, PostgreSQL does a number of things better (though I'd wager some of the reasons MySQL is getting slower for some workloads is because it is now doing some of the things PostgreSQL has done for a while, and they require more resources; features have a cost). If I were weighing out the pros and cons in isolation, I'd pick PostgreSQL. But, I'm not. I'm building things on top of other things, and those other things were built with MySQL. when MySQL was faster than PostgreSQL I didn't choose it because of its speed (I used to use PostgreSQL for my company website, but migrated to MySQL about ten years ago). MySQL/MariaDB may not be better, but they're good enough. MySQL and PostgreSQL have converged in terms of features and performance to be reasonable substitutes for each other.
- elmigranto 9y ago> MySQL and PostgreSQL have converged in terms of features and performance Is there CTEs in MySQL yet? What about binary JSON and indexes on that? How is implementing arrays and aggregate functions beyond simple arithmetic going? Or maybe there is a way to write triggers in Python or JS if I want some performant number crunching with ACID guarantees? Can DDL statements be rolled back, so I wouldn't have to pull my hair out during development after running migration I'm working on, if it happens to have a typo?
- spotman 9y agotldr: mysql is getting worse for small, in memory workloads with low concurrency. for the average medium to high traffic mysql install, i find 5.7 to be much faster than 5.6 or mariadb where concurrency and varying workloads prevail. ymmv, do your own testing to see which db is a good platform for your specific workload. maybe it's mysql 5.6 maybe it's mariadb, maybe it's postgres. for me mysql 5.7 brings much awaited niceness, saner defaults and even though not all workloads are better on it i think oracle is really trying to iterate. likely they will fix this regression and there would be little reason to use it over 5.6 or older.