MySQL replication performance is a topic that requires no special
introduction. Replication was never designed to be extremely fast
and there isn't a single MySQL DBA who wouldn't learn it the hard
way.
Today, with the improvements introduced in MySQL 5.7, as well as
a complete re-implementation done by Amazon Aurora, it seems like
we can finally see the light at the end of this very long
tunnel.
Let's take both products for a spin and see how they behave.
Introduction Before we get busy with the benchmarks, let's
quickly explain why MySQL 5.7 and Amazon Aurora are so special. I
wouldn't spend a weekend testing them if they weren't, right?
MySQL MySQL 5.7 finally uses multi-threaded slave (MTS)
implementation that makes sense. Long story short: instead of
doing poor man's multithreading that requires you to split your
data into multiple schemas (and doesn't guarantee consistency for
cross-schema modifications), it can simply replay …
New MySQL version, YAY!
MySQL 5.7 is full of new features, like virtual columns, virtual indexes and JSON fields! But, it came with some changes to the default configuration. When running:
SELECT @@GLOBAL.sql_mode;
We get:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
What I want to talk about is the ONLY_FULL_GROUP_BY
mode. This mode rejects queries where nonaggregated columns are
expected, but aren’t on the GROUP BY
or
HAVING
clause. Before MySQL 5.7.5,
ONLY_FULL_GROUP_BY
was disabled by default, now it
is enabled.
You know the drill…
This is a simple statement, people use it everywhere, it shouldn’t be that hard to use, right?
Given the following schema:
Suppose I want to list all users that commented on …
[Read more]I think one of the big announcements that came out from the Amazon Web Services world in October 2015 was the fact that you could spin up instances of MariaDB Server on it. You would get MariaDB Server 10.0.17. As of this writing, you are still getting that (the MySQL shipping then was 5.6.23, and today you can create a 5.6.27 instance, but there were no .24/.25/.26 releases). I’m hoping that there’s active work going on to make MariaDB Server 10.1 available ASAP on the platform.
Just last week you would have noticed that Amazon has rolled out MySQL 5.7.10. The in-place upgrades are not available yet, so updating …
[Read more]
A while back, I wrote a blog post explaining how
PERFORMANCE_SCHEMA
improvements in MySQL Server 5.7
provides new visibility into the SSL/TLS status of each
running client configuration. An excellent
recent post from Frederic Descamps at Percona covers
similar territory. Both of us use
PERFORMANCE_SCHEMA
tables directly – a powerful
interface, but one that requires a query joining multiple tables.
Thanks to the excellent work of Mark Leith, and a contribution from Daniël van Eeden, access to this
same information is made far easier via the SYS
schema.
I overlooked the SYS
…
Sometime DBAs have to deal with problematic queries and cannot tackle the problem at the source (problematic queries from ORMs, third party apps,... or source unknown...). MySQL 5.7 provides a pre and post parse query rewrite APIs where users can write their own plug-ins. With the post-parse query plugin, you can rewrite problematic queries without the need to make application changes, add hints, modify join order...
The "mysql_real_connect" function is used by MySQL clients, including multi-threaded clients, to connect to a MySQL server. The "mysql_real_connect" function is allowed to be run by concurrent threads without application level serialization. Unfortunately, the thread sanitizer found a data race in the "mysql_real_connect" function when processing the …
[Read more]In this blog post, we’ll discuss how we can determine if a MySQL connection is using SSL.
Since MySQL 5.7.5 the server generates SSL certificates (see auto_generate_certs) by default if compiled with SSL, or uses mysql_ssl_rsa_setup if compiled with YaSSL.
But how can we check to see if our MySQL client connection uses SSL ?
When using an interactive client, it’s easy! You have two options:
1. Check the status(s):
mysql> s -------------- mysql Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using EditLine wrapper Connection id: 7 …[Read more]
Percona is glad to announce the second release candidate of Percona Server 5.7.10-2 on February 8, 2016. Download the latest version from the Percona web site or from the Percona Software Repositories.
Based on MySQL 5.7.10, including all the bug fixes in it, Percona Server 5.7.10-2 is the current Release Candidate release in the Percona Server 5.7 series. All of Percona’s …
[Read more]Percona is glad to announce the first release candidate of Percona XtraBackup 2.4.0-rc1 on February 8th 2016. Downloads are available from our download site and from apt and yum repositories.
This is a Release Candidate quality release and it is not intended for production. If you want a high quality, Generally Available release, the current Stable version should be used (currently …
[Read more]Join us Tuesday, February 16, 2016 9:00am PST (UTC-8) for a webinar on the operational and monitoring features of MySQL 5.7 with Percona CEO Peter Zaitsev.
MySQL 5.7 is a great release, providing valuable features for both daily operations and ongoing development. In this, part two of our ongoing 5.7 webinar series, we will look into the new MySQL 5.7 features and enhancements that improve operations, with a specific focus on monitoring. These include:
- An improved optimizer, including updates to EXPLAIN and enhanced JSON support
- Performance and scalability improvements for the InnoDB storage engine, including temp tables, spatial types and full text search parsing …