As a support engineer, I often see situations when the cardinality of a table is not correct. When InnoDB calculates the cardinality of an index, it does not scan the full table by default. Instead it looks at random pages, as determined by options innodb_stats_sample_pages, innodb_stats_transient_sample_pages and innodb_stats_persistent_sample_pages, or …[Read more]
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, …
By default for MySQL server, InnoDB Engine is getting used widely due it’s ACID support, optimized read-write performance and for many other reasons which are great significance for the database server.
In this blog post, we are going to cover the InnoDB tablespace and its features like,
- InnoDB engine tablespaces
- Tablespace Data Encryption
- Tablespace related Configuration
InnoDB engine tablespaces System tablespace:
Common tablespace for MySQL server operations. Apart from the table data storage, InnoDB’s functionality requires looking for table metadata, storing and retrieving MVCC info to support ACID compliance and Transaction Isolation. It contains several types of information for InnoDB objects.
Table Data Pages
Table Index Pages …
In MySQL 8.0, we will be introducing a new configuration parameter called innodb_dedicated_server=bool. When ON, this option will look at the system memory, and then automatically set the these configuration parameters using the following rules:
innodb_buffer_pool_size server_memory < 1G ?
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 …
TL;DR: unless you know what you are doing, you should always have a primary key on your tables when replicating in RBR (and maybe even all the time).
TL;DR2: MariaDB 10.1 has an interesting way to protect against missing a primary key (innodb_force_primary_key) but it could be improved.
A few weeks ago, I was called off hours because replication delay on all the slaves from a replication chain
In one of my previous posts, I shared InnoDB table compression statistics for a read-only dataset using the default value of innodb_compression_level (6). In it, I claimed, without giving much detail, that using the maximum value for the compression level (9) would not make a big difference. In this post, I will share more details about this claim.
TL;DR: tuning innodb_compression_level is not
TL;DR: we still need MyISAM and myisampack because it uses less space on disk (half of compressed InnoDB) !
In the previous post, I shared my experience with InnoDB table compression on a read-only dataset. In it, I claimed, without giving much detail, that using MyISAM and myisampack would result is a more compact storage on disk. In this post, I will share more details about this claim.
In my last post about big MySQL deployments, I am quickly mentioning that InnoDB compression is allowing dividing disk usage by about 4.3 on a 200+ TiB dataset. In this post, I will give more information about this specific use case of InnoDB table compression and I will share some statistics and learnings on this system and subject. Note that I am not covering InnoDB page compression which is
In this blog, we’ll look at group replication and how it deals with flow control (FC) and replication lag.
In the last few months, we had two main actors in the MySQL ecosystem: ProxySQL and Group-Replication (with the evolution to InnoDB Cluster).
While I have extensively covered the first, my last serious work on Group Replication dates back to some lab version years past.
Given that Oracle decided to declare it GA, and Percona’s decision to provide some level of Group Replication support, I decided it was time for me to take a look at it again.
We’ve seen a lot of coverage already too many Group Replication topics. There are articles about Group Replication and performance, Group Replication and basic functionalities (or lack of it like automatic node provisioning), Group Replication and ProxySQL, and so on.
But one question kept coming up over and over in my …[Read more]
10 Older Entries »