We expect a number of these queries in 8.0 to get faster over time (everyone knows optimization comes last).
But the amazing point is that we are already starting from a position where we are faster at 7/10 queries. In the cases where we are faster, we are much faster. In the cases where we are slower it is usually negligible.
UTF8MB4 is now the default character set.
In general transaction processing workloads, such as OLTP Read Only and Read write the gain is 300% compared to MySQL 5.7. This is not the result of one specific change - but a number of changes and several man years of work. This improvement is true for all thread counts, so for many of you who are already using utf8 in your applications, you will see a good real-life performance improvement just by upgrading to 8.0.
Not neglecting SQL. We have added CTEs
CTEs are statement duration views. The inner view here does not have to materialize it, we can merge it just like a view.
One of our most requested features amongst large web customers is the ability to handle hot rows. The use-case here might be updating popular inventory in a commerce application or worker threads reading rows from a database. You now have the option to generate an error immediately if locks could not be acquired, or non deterministically executing the query by skipping the locked rows.
You can actually use both modifiers in the same query, as in the example here. In a seat reservation system I am trying to exclusively lock my seats, and shared lock to make sure my row or section of the stadium is available for booking. More context and examples available in martin’s blog post.