{"id":3738,"date":"2014-05-26T20:41:49","date_gmt":"2014-05-26T10:41:49","guid":{"rendered":"https:\/\/www.flamingspork.com\/blog\/?p=3738"},"modified":"2014-05-25T11:13:43","modified_gmt":"2014-05-25T01:13:43","slug":"awesome-mysql-5-7-improvements","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2014\/05\/26\/awesome-mysql-5-7-improvements\/","title":{"rendered":"Awesome MySQL 5.7 improvements"},"content":{"rendered":"<p>Recently, I&#8217;ve had reason to poke at MySQL performance on some pretty cool hardware. Comparing MySQL 5.6 to MySQL 5.7 is a pretty interesting thing to do when you have many CPU cores.<\/p>\n<p>The improvements to creating read views in InnoDB is absolutely huge for small statements with large concurrency &#8211; MySQL 5.7 completely removes this as a bottleneck &#8211; as much as doubling maximum SQL queries per second, which is a pretty impressive improvement.<\/p>\n<p>I haven&#8217;t poked at the similar improvements in Percona Server on this hardware setup &#8211; so I can only really guess as to the performance characteristics of it&#8230; If comparing to older MySQL versions, Percona Server 5.5 is likely to outperform MySQL 5.5 thanks to <a href=\"http:\/\/www.mysqlperformanceblog.com\/2013\/04\/12\/trx-descriptors-mysql-performance-improvements-in-percona-server-5-5-30-30-2\/\">this optimization<\/a>.<\/p>\n<p>But I have to say&#8230; MySQL 5.7 is impressive in its concurrency improvements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I&#8217;ve had reason to poke at MySQL performance on some pretty cool hardware. Comparing MySQL 5.6 to MySQL 5.7 is a pretty interesting thing to do when you have many CPU cores. The improvements to creating read views in &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2014\/05\/26\/awesome-mysql-5-7-improvements\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[76,14,423],"tags":[574,628,573],"class_list":["post-3738","post","type-post","status-publish","format-standard","hentry","category-code","category-mysql","category-percona","tag-multicore","tag-mysql","tag-percona-server"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-Yi","jetpack-related-posts":[{"id":3242,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/07\/other-mysql-code-size\/","url_meta":{"origin":3738,"position":0},"title":"Other MySQL branch code sizes\u00ef\u00bb\u00bf\u00ef\u00bb\u00bf","author":"Stewart Smith","date":"2013-03-07","format":false,"excerpt":"Continuing on from my previous posts,\u00c2\u00a0MySQL code size over releases\u00c2\u00a0and\u00c2\u00a0MariaDB code size\u00c2\u00a0I've decided to also look into some other code branches. I've used the same methodology as my previous few posts: sloccount for C and C++ code only. There are also other branches around in pretty widespread use (if only\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3505,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/10\/11\/the-road-to-percona-server-5-6\/","url_meta":{"origin":3738,"position":1},"title":"The road to Percona Server 5.6","author":"Stewart Smith","date":"2013-10-11","format":false,"excerpt":"Over a year ago now, I announced the first Percona Server 5.6 alpha on the Percona MySQL Performance Blog (Announcing Percona Server 5.6 Alpha). That was way back on August 14th, 2012 and it was based on MySQL 5.6.5 released in April. I'm really happy now to point to the\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3298,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/04\/19\/detecting-if-a-mysql-server-supports-partitioning\/","url_meta":{"origin":3738,"position":2},"title":"Detecting if a MySQL server supports partitioning","author":"Stewart Smith","date":"2013-04-19","format":false,"excerpt":"This morning, this Percona XtraBackup bug came to my attention:\u00c2\u00a0https:\/\/bugs.launchpad.net\/bugs\/1170340\u00c2\u00a0- basically, it's now really quite tricky to determine if a MySQL server you're connected to supports partitioning or not. If you're connected to anything less than MySQL 5.6, you can use have_partitioning variable. But since that's gone in 5.6, you're\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3391,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/08\/09\/are-mariadb-tests-adding-anything-extra-over-oracle-mysql-tests\/","url_meta":{"origin":3738,"position":3},"title":"Are MariaDB tests adding anything extra over Oracle MySQL tests?","author":"Stewart Smith","date":"2013-08-09","format":false,"excerpt":"I grabbed all the tests introduced in MariaDB 5.5.32 (i.e. \"bzr diff -rtag:mariadb-5.5.31..mariadb-5.5.32 mysql-test\/\" and some foo) and threw them in their own test file. I only kept tests for crashing bugs and ignored those that required plugins (there were two or three, but nothing major). So now I have\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3043,"url":"https:\/\/www.flamingspork.com\/blog\/2012\/06\/28\/hacking-the-jenkins-bzr-plugin\/","url_meta":{"origin":3738,"position":4},"title":"Hacking the Jenkins BZR plugin","author":"Stewart Smith","date":"2012-06-28","format":false,"excerpt":"For Drizzle and for all of the projects we work on at Percona we use the Bazaar revision control system (largely because it's what we were using at MySQL and it's what MySQL still uses). We also use Jenkins. We have a lot of jobs in our Jenkins. A lot.\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3956,"url":"https:\/\/www.flamingspork.com\/blog\/2015\/04\/10\/beyond-one-million-qps\/","url_meta":{"origin":3738,"position":5},"title":"Towards (and beyond) ONE MILLION queries per second","author":"Stewart Smith","date":"2015-04-10","format":false,"excerpt":"At Percona Live MySQL Conference 2015 next week I'll be presenting on \"Towards One MILLION queries per second\" on 14th April at 4:50pm in Ballroom A. This is the story of work I've been doing to get MySQL executing ONE MILLION SQL queries per second. It involves tales of MySQL,\u2026","rel":"","context":"In &quot;mysql&quot;","block_context":{"text":"mysql","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=3738"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3738\/revisions"}],"predecessor-version":[{"id":3744,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/3738\/revisions\/3744"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=3738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=3738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=3738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}