As of MySQL 8.0.3, you now have the ability to create histogram statistics in order to provide more statistics to the optimizer. In this blog post, we will have a look at how you can create histogram statistics, and we will explain when it might be useful to have histogram statistics.…
10 Older Entries »
This week is special and full of anniversaries for me. This week
5 years ago I left Oracle behind and joined Percona... Same week
5 years ago I had written something about MySQL in this blog for the
first time in my life. 5 years ago I've created my Facebook account that I actively (ab)use for discussing work-related issues.
So, to summarize, it's a five years anniversary of my coming out
as a MySQL Entomologist, somebody who writes and speaks about
MySQL and bugs in MySQL in public! These 5 years were mostly
I decided to celebrate with yet another post in this relatively new series and summarize in short what interesting things I studied, …
I do not care much about MySQL 8.0.x at the moment, as it's far
from being GA and is work in progress. It is not yet used by
customers whom I have to support. But I know about many
interesting changes and improvements there that, eventually, are
going to influence all main forks and kinds of MySQL. So, it
would not be wise to ignore MySQL 8.0.c entirely even for
For this post I decided to briefly check what community reported bugs were fixed in the recent release, 8.0.2, based on release notes. For me it's a measure of community interest in MySQL 8.0.x and Oracle's interest in further working with MySQL Community. I ended up with the following, short enough list of bug fixes in the categories I usually care about (InnoDB, partitioning, replication and optimizer):
- The very first InnoDB bug mentioned in …
More than 3 months after 5.7.18 we' ve got MySQL 5.7.19 released
recently. This is my quick review of the release notes with interesting fixed bug
(reported in public) highlighted in the areas I am usually
Let's start with InnoDB. The following bug fixes attracted my attention:
- Bug #85043 is still private. You know how much I hate those. At least we can see it was about the fact that "The server allocated memory unnecessarily for an operation that rebuilt the table." Let's hope this is no longer the case.
- Bug …
I had not reviewed MySQL 5.7 release notes for quite a some time
in this series. Last time I checked it was MySQL 5.7.15. So, as soon as I noted new
release, 5.7.18, I decided to check the release notes
for any interesting fixed bug (reported by Community users in
public) in the areas I am interested in: InnoDB, replication,
optimizer and few others.
Note that recently most of the bugs fixed are internal only, found by Oracle engineers that never cared (or are not allowed, who knows) to report them in public, so this blog post is not even remotely a full review of what's fixed in MySQL 5.7.18 and is not a replacement for reading the detailed …
This week I noticed (yet another) customer issue related to the
output produced by mysqladmin debug command (or when
mysqld process gets SIGHUP signal). I mean the
output generated by the mysql_print_status() function. In this
issue the content of the output was misinterpreted. I've seen
this in the past more than once, and requested to document the
output properly, but it never happened for a reason that there is
an internal feature request to put this information elsewhere, in
Performance Schema or Information Schema. The
bug ended up with "Won't fix" status.
Surely I complained in a comment and on Facebook, and then …
Back in January 2014, some time after many nice people
kindly asked me to shut up stop writing about MySQL bugs on
Facebook several times per day, I decided to start reading
the fine MySQL Manual more carefully than before and report
not only typos there, but also any topic or detail not properly
explained. Usually these reports, tagged as "missing manual", were the result of careful
study of the documentation based on real user question or
customer issue. So, most of these reports came from real life,
and missing information badly affected poor MySQL users.
Today, for this issue #50 in my series of posts about MySQL bugs, I decided to list and …
Sometimes MySQL surprises you in ways you would have never
Would you think that the order in which the indexes appear in a table matters?
It does. Mind you, not the order of the columns - the order of the indexes.
MySQL optimizer can, in specific circumstances, take different paths, sometimes with nefarious effects.
Please consider the following table:
CREATE TABLE `mypartitionedtable ` (
`HASH_ID` char(64) NOT NULL,
`RAW_DATA` mediumblob NOT NULL,
`EXPIRE_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY `EXPIRE_DATE_IX` (`EXPIRE_DATE`),
KEY `HASH_ID_IX` (`HASH_ID`)
) ENGINE=TokuDB DEFAULT CHARSET=latin1 ROW_FORMAT=TOKUDB_UNCOMPRESSED
/*!50100 PARTITION BY RANGE (UNIX_TIMESTAMP(EXPIRE_DATE))
(PARTITION p2005 VALUES LESS THAN (1487847600) ENGINE = …
Users had to identify the reasons for MySQL performance problems
somehow well before famous Performance Schema appeared in MySQL 5.5.3,
and even before Domas invented his Poor Man's Profiler. Poor users had
to use some OS-level tools, and among these tools the most
important one was, probably, oprofile.
oprofile is a system-wide statistical profiling tool for Linux available since 2001 and 2.4.x kernels. It was applied to MySQL for many …
Welcome to another post in the series of Percona Live featured tutorial speakers blogs! In these blogs, we’ll highlight some of the tutorial speakers that will be at this year’s Percona Live conference. We’ll also discuss how these tutorials can help you improve your database environment. Make sure to read to the end to get a special Percona Live 2017 registration bonus!
In this Percona Live featured tutorial, we’ll meet Morgan Tocker, MySQL Product Manager at Oracle. His tutorial is a MySQL 8.0 Optimizer Guide. Many users who follow MySQL development are aware that recent versions introduced a number of improvements to query execution (via the addition of …[Read more]
10 Older Entries »