{"id":4173,"date":"2016-09-23T09:00:53","date_gmt":"2016-09-22T23:00:53","guid":{"rendered":"https:\/\/www.flamingspork.com\/blog\/?p=4173"},"modified":"2016-09-22T20:15:30","modified_gmt":"2016-09-22T10:15:30","slug":"first-look-at-mysql-8-0-0-milestone","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2016\/09\/23\/first-look-at-mysql-8-0-0-milestone\/","title":{"rendered":"First look at MySQL 8.0.0 Milestone"},"content":{"rendered":"<p>So, about ten days ago the <a href=\"http:\/\/mysqlserverteam.com\">MySQL Server Team<\/a> released <a href=\"http:\/\/mysqlserverteam.com\/the-mysql-8-0-0-milestone-release-is-available\/\">MySQL 8.0.0 Milestone<\/a> to the world. One of the most unfortunate things about MySQL development is that it&#8217;s done behind closed doors, with the only hints of what&#8217;s to come arriving in maybe a note on a bug or such milestone releases that contain a <strong>lot<\/strong> of code changes. How much code change? Well, according to the text up on github for the <a href=\"https:\/\/github.com\/mysql\/mysql-server\/tree\/8.0\">8.0 branch<\/a> &#8220;This branch is 5714 commits ahead, 4 commits behind 5.7. &#8221;<\/p>\n<p>Way back in 2013, I looked at <a href=\"https:\/\/www.flamingspork.com\/blog\/2013\/03\/05\/mysql-code-size\/\">MySQL Code Size over releases<\/a>, which I can again revisit and include both MySQL 5.7 and 8.0.0.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/docs.google.com\/spreadsheets\/d\/1iPqK4Aeju_EMdCdVQHrnIGnMYbC7aIlIPDe3Kt71GW0\/pubchart?oid=827926198&amp;format=interactive\" width=\"593\" height=\"361\" frameborder=\"0\" scrolling=\"no\" seamless=\"\"><\/iframe><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/docs.google.com\/spreadsheets\/d\/1iPqK4Aeju_EMdCdVQHrnIGnMYbC7aIlIPDe3Kt71GW0\/pubchart?oid=634226759&amp;format=interactive\" width=\"555\" height=\"352\" frameborder=\"0\" scrolling=\"no\" seamless=\"\"><\/iframe><\/p>\n<p>While 5.7 was a big jump again, we seem to be somewhat leveling off, which is <strong>a good thing<\/strong>. Managing to add features and fix long standing problems <strong>without<\/strong> bloating code size is <strong>good for software maintenance.<\/strong> Honestly, hats off to the MySQL team for keeping it to around a 130kLOC code size increase over 5.7 (that&#8217;s around 5%).<\/p>\n<p>These days I&#8217;m mostly just a user of MySQL, pointing others in the right direction when it comes to some issues around it and being the resident MySQL grey(ing)beard(well, if I don&#8217;t shave for a few days) inside IBM as a very much side project to my day job of OPAL firmware.<\/p>\n<p>So, personally, I&#8217;m thrilled about <strong>no more FRM<\/strong>, better Unicode, <strong>SET PERSIST<\/strong> and performance work. With my IBM hat on, I&#8217;m thrilled about the fact that it compiled on POWER <strong>out of the box<\/strong> and managed to work (I haven&#8217;t managed to crash it yet). There seems to be a possible performance issue, but hey, this is a <strong>huge<\/strong> improvement over the 5.7 developer milestones when run on POWER.<\/p>\n<p>A lot of the changes are focused around usability, making it easier to manage and easier to run at at least a medium amount of scale. This is long overdue and it&#8217;s great to see even seemingly trivial things like SET PERSIST coming (I cannot tell you how many times that has tripped me up).<\/p>\n<p>In a future post, I&#8217;ll talk about the FRM removal!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So, about ten days ago the MySQL Server Team released MySQL 8.0.0 Milestone to the world. One of the most unfortunate things about MySQL development is that it&#8217;s done behind closed doors, with the only hints of what&#8217;s to come &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2016\/09\/23\/first-look-at-mysql-8-0-0-milestone\/\">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_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":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[14],"tags":[628],"class_list":["post-4173","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-mysql"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-15j","jetpack-related-posts":[{"id":3738,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/05\/26\/awesome-mysql-5-7-improvements\/","url_meta":{"origin":4173,"position":0},"title":"Awesome MySQL 5.7 improvements","author":"Stewart Smith","date":"2014-05-26","format":false,"excerpt":"Recently, I'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 InnoDB is absolutely huge for small statements with large concurrency\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":3758,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/06\/03\/mysql-5-7-on-power\/","url_meta":{"origin":4173,"position":1},"title":"MySQL 5.7 on POWER","author":"Stewart Smith","date":"2014-06-03","format":false,"excerpt":"In a previous post, I covered porting MySQL 5.6 to POWER and subsequently, some new record performance numbers with MySQL 5.6.17 on POWER8. Well, those following at home will be aware that not only is the next sentence sponsored by IBM Legal, but that MySQL 5.7 alleviates a bunch of\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":3813,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/10\/08\/quick-mysql-5-7-5-thoughts\/","url_meta":{"origin":4173,"position":2},"title":"Quick MySQL 5.7.5 thoughts","author":"Stewart Smith","date":"2014-10-08","format":false,"excerpt":"It was great to see the recent announcement of MySQL 5.7.5 over at the MySQL Server Team blog. I'm looking forward to throwing this release at some of the POWER8 systems we have for a couple of really good reasons: 1) Does it work better than previous MySQL 5.7 releases\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":3401,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/08\/16\/who-is-working-on-mysql-5-7\/","url_meta":{"origin":4173,"position":3},"title":"Who is working on MySQL 5.7?","author":"Stewart Smith","date":"2013-08-16","format":false,"excerpt":"First I find out the first commit that is in 5.7 that isn't in 5.6 (using bzr missing) and then look at the authors of all of those commits. Measuring the number of commits is a really poor metric as it does not measure the complexity of the code committed,\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":3235,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/05\/mysql-code-size\/","url_meta":{"origin":4173,"position":4},"title":"MySQL code size over releases","author":"Stewart Smith","date":"2013-03-05","format":false,"excerpt":"As the start of a bit of a delve into the various MySQL branches and patch sets that have been around, let's start looking at the history of MySQL itself. This is how big MySQL has been over all of the major releases since the beginning (where beginning=3.23). (edit: These\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"increase in MySQL source code size over version","src":"https:\/\/docs.google.com\/spreadsheet\/oimg?key=0Ar7e3-N2Y32IdHFGRWI2ODk4ZUY4TkhrclJSVC1mb3c&oid=1&zx=5h67vlc175bd","width":350,"height":200,"srcset":"https:\/\/docs.google.com\/spreadsheet\/oimg?key=0Ar7e3-N2Y32IdHFGRWI2ODk4ZUY4TkhrclJSVC1mb3c&oid=1&zx=5h67vlc175bd 1x, https:\/\/docs.google.com\/spreadsheet\/oimg?key=0Ar7e3-N2Y32IdHFGRWI2ODk4ZUY4TkhrclJSVC1mb3c&oid=1&zx=5h67vlc175bd 1.5x"},"classes":[]},{"id":3242,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/03\/07\/other-mysql-code-size\/","url_meta":{"origin":4173,"position":5},"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":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4173","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=4173"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4173\/revisions"}],"predecessor-version":[{"id":4181,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/4173\/revisions\/4181"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=4173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=4173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=4173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}