Playing around with the Employees sample database and full text search on MySQL, I found a weird bug. After creating a full text targeting a column on a table, a "select distinct" query to retrieve the range of values returns an empty set. So if you initially perform the following query, the outcome comes with 7 rows: mysql> select distinct title from titles; +--------------------+ | title
Performance Schema has been with us for a while now. Over the
years, it has gone a long way from being a curiosity disabled by
default to becoming a sophisticated diagnostic tool you may want
to enable permanently in your production database.
MySQL 5.7 introduced some exciting Performance Schema features
and the first one I'm going to look at is the instrumentation for
server memory usage. Have I Got Data For You MySQL 5.7.9 (GA)
supports the following memory summary tables (per documentation) that let you look at server
memory usage from different angles:
- "memory_summary_by_account_by_event_name" summarizes events for a given account.
- "memory_summary_by_host_by_event_name" summarizes events for a given host.
- "memory_summary_by_thread_by_event_name" summarizes events for a given thread and event name. …
The "innodb_read_only" parameter is perhaps not
among the most commonly used MySQL parameters. It may however
influence server behaviour in a way that you may not expect. This
post is a record of an investigation that revealed one of MySQL
quirks caused by said parameter.
Background The MySQL 5.6 server topology I was looking at during
this investigation consisted of a single main server (R/W) and
multiple replicas serving read-only statements.
This is relatively simple and you wouldn't expect to run into
issues on the replicas as long as you stick to statements that do
not modify data, right?
Not quite. Issue I was asked to investigate can be described as
follows:
The DBA created two tables connected using a foreign key
relationship:
CREATE TABLE `employee` ( `e_id` int(11) NOT …[Read more]
MySQL 5.7 comes with a new backup tool, named mysqlpump, which is almost the same as mysqldump with the ability of extracting data in parallel threads.
I tried a little experiment. Using a server containing 11 databases, with a total of 300 tables and about 20 million rows (roughly ≈ 10GB,) I used both mysqldump and mysqlpump to get a backup.
mysqldump --all-databases > dump.sql
mysqlpump --all-databases \
--add-drop-database --add-drop-table --skip-watch-progress \
--default-parallelism=10 \
--parallel-schemas=db,db1,db2 \
--parallel-schemas=db3,db4,db5 \
--parallel-schemas=db6,db7,db8 \
--parallel-schemas=db9,db10 > pump.sql
The backup with mysqldump took 3 minutes and 33 seconds. The one with mysqlpump took 2 minutes and 55 …
[Read more]
I’ve had a look at a preview release of MySQL 5.7.8, some time
before it became available to the general public (perks and
duties of an Oracle ACE) and I found a few interesting
things among the release notes and the tarball itself:
- There is a new tool named mysqlpump, which is intended as a replacement for mysqldump, with parallel processing, compression, progress watch, the long awaited ability of excluding databases or tables, and more.
- The json functionality has been fished out from the labs and added to the main distribution.
Both MySQL and MariaDB have been busy, each introducing new
features, sometimes creating the same feature, often with
different syntax.
This is sometimes good for users, who have a wide choice. And
sometimes it is bad, as once you are used to the deployment and
syntax of one flavor, it is hard to switch to a different one.
This problem is enhanced if you are dealing with an application,
MySQL
Sandbox, that needs to work well with all flavors.
The latest releases of MySQL Sandbox (3.0.51 to 3.0.55) have been necessary to solve minor and major troublesome points with MySQL 5.7.8 and MariaDB 10.1.
The current version (3.0.55) can install all the newest releases, including replication with MySQL 5.7.8 which suffers from a compatibility bug (better explored in a separate article). …
[Read more]Does your dataset consist of InnoDB tables with large BLOB data such that the data is stored in external BLOB pages? Was the dataset created in MySQL version 5.1 and below and without using the InnoDB plugin, or with InnoDB plugin but with MySQL version earlier than 5.1.55? If the answer to both the questions are "YES" then it could very well be that you have a hidden corruption lying around in your dataset.
The post Beware of MySQL BLOB Corruption in Older Versions appeared first on ovais.tariq.
There were two nasty MySQL replication bugs in two different 5.6 releases that would make it difficult to upgrade slaves to MySQL 5.6 while still connected to MySQL 5.5 master. The first of those bugs is MySQL bug 72610 which affects 5.6.19. Essentially this bug is triggered when the table structure on the slave is different from the table structure on the master which leads to unnecessarily large amount of RAM usage while replicating events that affect that table. The amount of RAM used would generally be more noticeable when the replicated transaction consists of thousands of RBR events. The most common way this affects how we upgrade a replication hierarchy, is when we have the master running MySQL 5.5 and the slave running MySQL 5.6 and we have transactions involving DATETIME column(s). Tables with DATETIME columns will have different underlying structure when created on MySQL 5.5 versus when created on MySQL 5.6. Ideally you would avoid creating …
[Read more]It’s been a little while since I blogged on MySQL on POWER (last time was thinking that new releases would be much better for running on POWER). Well, I recently grabbed the MySQL 5.6.20 source tarball and had a go with it on a POWER8 system in the lab. There is good news: I now only need one patch to have it function pretty flawlessly (no crashes). Unfortunately, there’s still a bit of an odd thing with some of the InnoDB mutex code (bug filed at some point soon).
But, with this one patch applied, I was getting okay sysbench results and things are looking good.
Now just to hope the MySQL team applies my other patches that improve things on POWER. To be honest, I’m a bit disappointed many of them have sat there for this long… it doesn’t help build a development community when patches can sit for months without either …
[Read more]With the upcoming release of MySQL 5.7 I begin to see a problem which I think needs attention at least for 5.8 or whatever comes next. The GA release cycle is too long, being about 2 years and that means 3 years between upgrades in a production environment More people use MySQL and the data … Continue reading Making MySQL Better More Quickly