News
Does InnoDB data compression help with short disk space?
Because we are a bit short off disk space on one of our servers I had the idea to try out the MySQL feature Data Compression for InnoDB. This feature is useful if you have tables with VARCHAR, BLOB or TEXT attributes.
To not make it not too simple our table is partitioned as well. Our table looks like this:
CREATE TABLE `history_str` (
`itemid` mediumint(8) unsigned NOT NULL DEFAULT '0',
`clock` int(11) unsigned NOT NULL DEFAULT '0',
`value` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY …Taxonomy upgrade extras: Innodb Compress
Codership partners with FromDual to offer consulting and support services for Galera Cluster for MySQL
Helsinki, Finland, Uster, Switzerland – February 18, 2012 – Codership, the provider of Galera Cluster for MySQL, and FromDual, a MySQL consulting company, today announced collaboration to offer Galera Cluster technology and related support and consulting services for Galera users all over the world, especially in German speaking countries Germany, Austria and Switzerland (DACH). Galera Cluster is a synchronous, true multi-master replication cluster for MySQL using the well known InnoDB storage engine. …
Taxonomy upgrade extras: High Availability MySQL Consulting Cluster Innodb Fromdual Support Galera Codership Mysql Support Mysql-Consulting
What can MySQL performance monitoring graphs tell you?
Many of you may monitor their databases for different purposes. Beside alerting it is often good to also make some graphs from MySQL performance counters to see what is actually happening on your database.
The following graphs where made with our FromDual Performance Monitor for MySQL as a Service (MaaS) set-up. If you do not have the time to install a performance monitoring yourself please feel free to contact us for our MaaS solution.
Overview
First of all it is a good idea to have an overview of all the …
Taxonomy upgrade extras: Performance Tuning Performance Enterprise Monitor Monitoring Monitor Performance Monitoring Performance Monitor Graph Mpm Maas
I prefer MySQL binary tar balls with Galera...
In my set-ups I have different MySQL versions (MySQL 5.0, 5.1, 5.5 and 5.6, Percona Server 13.1 and 24.0, MariaDB 5.2.10, 5.3.3, Galera 1.0, 1.1 and 2.0) running in parallel at the same time.
Up to now I have not found a practical way yet to do this with RPM or DEB packages. If anybody knows how to do it I am happy to hear about it.
So I love and need only binary tar balls. Installation and removal is done within seconds and no remainings are left over after a removal. To operate the whole I use myenv.
Some …
Taxonomy upgrade extras: Installation Tar Galera Binary
FromDual launches Monitoring as a Service for MySQL
On January 9th FromDual launched its Monitoring as a Service (MaaS) solution for MySQL. This service is based on the Performance Monitor for MySQL (mpm) v0.8 and Zabbix.
The installation on customer side of the so called monitoring agent takes about 5 minutes (for installation, configuration and scheduling).
The collected performance data are sent to our service where you can view them with your web browser. Some examples you can find here.
You can download the Performance Monitor for MySQL from our …
Taxonomy upgrade extras: Monitoring Monitor News Performance Monitor Newsletter Mpm Maas
Recover lost .frm files for InnoDB tables
Recently I found in a forum the following request for help:
My MySQL instance crashed because of free disk space fault. I saw in /var/lib/mysql all the files: ibdata1, ib_logfile* and all the folders containing frm files. Well, when i solved the problem and run successfully the instance, some databases disappeared. One of those is the most important, and i don’t know how many tables had and their structures. Is there any way for recover the entire lost database (structure and data) only having the …
Taxonomy upgrade extras: English Restore Backup Recovery Innodb Frm Innodb Table Monitor Ibdata1
Rolling upgrade of Galera 1.0 to 1.1
A few days ago Codership announced their new version Galera v1.1 - synchronous Replication Cluster for MySQL. Before we look at the new feature of Rolling Online Schema Upgrade (OSU) we have a look at how to upgrade to the new Galera release.
A rolling upgrade of your synchronous Galera Replication Cluster from version 1.0 to 1.1 is quite easy when you stay at the same MySQL version (5.5).
To not lose the availability of your database service during the upgrade you should have at least 3 Galera nodes in …
Taxonomy upgrade extras: English Upgrade Galera Rolling Upgrade
New version of FromDual's Performance Monitor for MySQL (MPM) v0.7.2 is out
On December 2nd 2011 FromDual released the new version v0.7.2 of its Performance Monitor for MySQL. The new version can be downloaded from here.
The Performance Monitor for MySQL is an agent which is hooked into the agent of the well known Monitoring solution called Zabbix. Zabbix is an integrated Enterprise Monitoring solution which can produce performance graphs and alerting.
The changes in the new release are:
New functionality
- A new module for Galera was added (mainly Galera 0.8).
- A new module for the …
Taxonomy upgrade extras: Performance Enterprise Monitor Monitoring Monitor Performance Monitoring Performance Monitor Release Graph Galera Mpm Maas
Migrating from MySQL Master-Master Replication to Galera Multi-Master Replication
Introduction
Galera is a synchronous Multi-Master Replication for MySQL. It is therefore in competition with several other MySQL architectures:
- Master-Master Replication with MySQL
- MySQL Cluster
- The non-open source product called Schooner
Very often they can be easily replaced by Galera’s synchronous Multi-Master Replication for MySQL.
All those products have some advantages and disadvantages. Very often MySQL Master-Master Replication is used in the field because of its simplicity to set-up. But …
Taxonomy upgrade extras: English High Availability MySQL Multi-Master Replication Mysql Cluster Ha Ring-Replikation Galera Master-Master Schooner Migration
How MySQL behaves with many schemata, tables and partitions
Introduction
Recently a customer claimed that his queries were slow some times and sometimes they were fast.
First idea: Flipping query execution plan caused by InnoDB could be skipped because it affected mainly MyISAM tables.
Second idea: Caching effects by either the file system cache caching MyISAM data or the MyISAM key buffer caching MyISAM indexes were examined: File system cache was huge and MyISAM key buffer was only used up to 25%.
I was a bit puzzled…
Then we checked the table_open_cache …
Taxonomy upgrade extras: English Table Innodb Partition Myisam Schema Table_open_cache Table_definition_cache Open_files_limit Open_files Limitnofile Multi-Tenant
Building Galera Replication from Scratch
Introduction
MySQL/Galera synchronous Multi-Master Replication consists of 2 parts:
- The wsrep patches for MySQL (codership-mysql) and
- the Galera Replication Plugin (galera).
If you do not want to download the prepared binaries you can build it on you own.
First you have to download the native MySQL sources, then patch it with the Galera wsrep patches and compile it. In a second step you have to build the Galera Plugin.
This is especially useful because in the standard Galera binary tar balls the garbd …
Taxonomy upgrade extras: English Multi-Master Replication Cluster Galera Synchronous
MySQL Vala Program Example
Summary: In this article we have a short look at a simple MySQL example program written in Vala.
Recently a customer pointed me to a programming language called Vala. Vala is a C-style programming language generating C code which afterwards can be compiled and linked with the normal gcc.
This I found pretty useful to not mess around with pointers and all this stuff in C and to be capable anyway to write C programs for some projects I had in mind in my head since long.
Vala is mostly used around the Gnome …
Taxonomy upgrade extras: English MySQL Example Vala Program
Exercises of Advanced MySQL Developer Workshop
Our Advanced MySQL Developer Workshop is over now and IMHO it was quite a success.
During the workshop it is planned to have some exercises. If you are curious and if you want to test or train your MySQL skills, find the exercises here: Advanced MySQL Developer Workshop Exercises.
The solutions are available on request as well.
If you like those exercises we could also provide the exercises of our Advanced MySQL DBA Workshop. Please let us know if you are interested in…
Have fun.
Taxonomy upgrade extras: English Workshop Course Developer Exercise
MySQL JMeter Webshop Benchmark
Abstract: In this article we provide a little JMeter WebShop Example Benchmark for MySQL.
For our Advanced MySQL Developer Workshop we have one exercise Benchmarking MySQL with JMeter. For this exercise we are using the FoodMart-2.0
[1
] Schema and simulating a simple WebShop Transaction:
- Logging in
- Put some articles into the basket
- Buy the articles
- Log out
I found it pretty hard to find good and detailed examples how to do this with JMeter and I wasted a lot of time searching and figuring out how it …
Taxonomy upgrade extras: English Benchmark Performance Jmeter
To zip, or not to zip, that is the question
Abstract: In this article we have a look at the compression options of common zipping tools and its impact on the size of the compressed files and the compression time. Further we look at the new parallel zip tools which make use of several cores.
Start with a backup first
From time to time I get into the situation where I have to compress some database files. This happens usually when I have to do some recovery work on customers systems. Our rule number 1 before starting with a recovery is: Do a file …
Taxonomy upgrade extras: English Backup Recovery Compress Zip Tar
How good is MySQL INSERT TRIGGER performance
Abstract: In this article we discuss how big is the performance impact of MySQL TRIGGERs compared to application side logging (with INSERT) into a MySQL table.
What was in my mind from the past
A while ago when MySQL released its Stored Language features in v5.0 I have seen a book
[1
] about this topic. In this book was a performance comparison between different implementations of computational tasks, one was done in MySQL Stored Language. The result was, that MySQL Stored Language feature sucks also …
Taxonomy upgrade extras: English MySQL Benchmark Performance Trigger Innodb Myisam Insert Pl/Sql Sql/Psm
ER-Diagram of the InnoDB Data Dictionary
With the new MySQL 5.6 release there are some more InnoDB Data Dictionary Tables in the INFORMATION_SCHEMA:
New with MySQL 5.5 are:
| INNODB_CMP |
| INNODB_CMP_RESET |
| INNODB_CMPMEM |
| INNODB_CMPMEM_RESET |
| INNODB_TRX |
| INNODB_LOCK_WAITS |
| INNODB_LOCKS |
New with MySQL 5.6 are:
| INNODB_BUFFER_PAGE |
| INNODB_BUFFER_PAGE_LRU |
| INNODB_BUFFER_POOL_STATS |
| INNODB_FT_CONFIG |
| INNODB_FT_DELETED |
| INNODB_FT_DEFAULT_STOPWORD |
| INNODB_FT_INDEX_CACHE |
| INNODB_FT_BEING_DELETED |
| INNODB_FT_INDEX_TABLE … |
Taxonomy upgrade extras: English Innodb Data Dictionary Er-Diagram
Warming up the InnoDB Buffer Pool during start-up
Abstract: Heating up the InnoDB Buffer Pool during the MySQL instance startup should significantly improve InnoDB Performance in the beginning of the life of the Instance. This is achieved by sequential scans of the needed data instead of random I/O reads which would happen when we just let the system work it out by itself.
How to find the database objects which can be loaded during MySQL start-up and how to load them automatically is described in this article.
New Table in the INFORMATION_SCHEMA
Some of my …
Taxonomy upgrade extras: English Innodb Buffer Pool Warm-Up Start-Up
Different opinions
Some people did not agree with my statements or had some questions…
A search using col_name IS NULL employs indexes if col_name is indexed. [1]
Some experiments on a table with a few (= 4) NULL values:
EXPLAIN SELECT * FROM t2 WHERE dt IS NULL; +----+-------------+-------+------+---------------+------+---------+-------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | …
Taxonomy upgrade extras:
Using NULL as default values
Abstract:
It is common practice in MySQL table design that fields are declared as NOT NULL but some non-sense DEFAULT values are specified for unknown field contents. In this article we show why this behavior is non optimal an why you should better declare a field to allow NULL values and use NULL values instead of some dummy values.
What we can see often out in the field
Recently we had a discussion with a customer if it makes more sense to store a default value or NULL in InnoDB tables when we do not know …
Taxonomy upgrade extras: English Table Default Null Design

