News

How good is MySQL INSERT TRIGGER performance

Shinguz - Wed, 2011-08-03 17:08

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

Shinguz - Fri, 2011-07-29 17:37

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

Shinguz - Fri, 2011-07-22 17:12

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

Shinguz - Fri, 2011-07-22 16:34

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

Shinguz - Thu, 2011-07-21 18:35

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 

MySQL out in the wild

Shinguz - Thu, 2011-06-30 14:29

One of our partners recently asked me on what platforms do we usually see MySQL installed out there…

The last 5 years I gave the answer: Typically it is 80% Linux, 10% Windows, 5% Solaris and 5% all others. But this was only the picture of my limited view and I was not sure how objective this was.

This time I really wanted to know it and so I collected the information of about 570 MySQL installations of customers.

The following numbers came out:

Operating System

OScnt%
Mac OSX30.5% …

Taxonomy upgrade extras:  English  MySQL  Architecture  Operating System  Platform  Distribution  Installation 

MySQL Query Cache does not work with Complex Queries in Transactions

Shinguz - Wed, 2011-06-29 13:28

We did recently a review of one of our customers systems and we found that the Query Cache was disabled even thought it had significant more read than write queries.
When we asked the customer why he has not enabled the Query Cache he mentioned a review that was done a few years ago and which stated that the Query Cache hit ratio was non optimal.
This was verified on a testing system which had the Query Cache enabled by accident.

But we all thought that the Query Cache would make sense in this situation so …


Taxonomy upgrade extras:  English  Transaction  Query Cache  Autocommit  General Query Log 

Newsletter Summer 2011

FromDual.en - Sun, 2011-06-19 16:12

Dear MySQL and MariaDB User,

With this Newsletter you receive the News about FromDual for Summer 2011.

Sie können diesen Newsletter auch auf deutsch lesen oder sich den deutschprachigen Newsletter. abonnieren.

Topics

Basic- and Silver-Support for …


Taxonomy upgrade extras:  English  Newsletter 

Regularly flushing the MySQL Query Cache

Shinguz - Fri, 2011-06-17 21:26

When we analyze our customers systems we see typically a high fragmentation of the query cache after a while. This leads to a less optimal use of the Query Cache than possible.

With the following Query you can see the values for your Query Cache:

mysql> SHOW GLOBAL STATUS LIKE 'Qcache%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 11328    |
| Qcache_free_memory      | 89442000 |
| Qcache_hits …

Taxonomy upgrade extras:  English  Query Cache  Flush 

InnoDB Graphs for MySQL Performance Monitor

Shinguz - Tue, 2011-06-14 10:41

We have just released v0.7.1 of the FromDual MySQL Performance Monitor. The new release can be downloaded from here.

In all editions some error messages have been cleaned-up, the fall-back data gather method mysql has been removed and the Maria SE template has been renamed to Aria.

In the edition dedicated to our customers most of the InnoDB graphs which are available with MEM v2.3.3 have been implemented now.

Please let us know, what you want to have monitored in addition and send us your feedback and …


Taxonomy upgrade extras:  Enterprise Monitor  Innodb  Monitoring  Performance Monitor  Graph  Mpm  Maas 

Be cautious when using Virtualized System with your Database

Shinguz - Wed, 2011-06-08 15:01

A customer rose a support case with a problem on his Master-Master set-up. The 2nd Master claims to have a problem:

master2> SHOW SLAVE STATUS<br>G
                ...
    Master_Log_File: master1-bin.000014
Read_Master_Log_Pos: 97975045
   Slave_IO_Running: No
  Slave_SQL_Running: Yes
Exec_Master_Log_Pos: 97975045
      Last_IO_Errno: 1236
      Last_IO_Error: Got fatal error 1236 from master when reading data from
                     binary log: 'Client requested master to start replication …

Taxonomy upgrade extras:  English  Multi-Master  Replication  San  Virtualization  Spof  Single-Point-of-Failure  Vmware 

Advanced MySQL Developer Workshop

FromDual.en - Wed, 2011-06-08 10:44

From August 15th to 17th FromDual will have an Advanced MySQL Developer Workshop with Citrus in Helsinki (Finland). The workshop will be held in English. The workshop topics you can find here and the registration form is available here.


Taxonomy upgrade extras:  English 

German speaking MySQL User Group (DMySQLAG) founded today

Shinguz - Mon, 2011-06-06 17:14

Today the German speaking MySQL User Group (DMySQLAG) was officially founded in Berlin. The association advocates:

  • the information of the use, the handling and the experience with MySQL and development in the MySQL Eco-System as well as systems which use MySQL.
  • the exchange of experience between MySQL users about MySQL and other systems.
  • the Advice and Cooperation with Oracle and vendors of other systems.
  • the submission of suggestions of the members to Oracle and vendors of other systems.

The intention of …


Taxonomy upgrade extras:  English  MySQL  User Group 

When a MySQL table was last touched

Shinguz - Thu, 2011-06-02 20:56

In our last customer project we had around 600 Gbyte of data in a MySQL database. Because this database consumed a significant amount of our disk space and backups with the InnoDB backup tool took pretty long we wanted to find out if we could get rid of some of the tables.

This application was growing over the last 10 years and it was not clear if some tables are still in use or not.

But how to find out when a table was touched last? MySQL/InnoDB theoretically could know about but does not report this …


Taxonomy upgrade extras:  English  MySQL  Table  Read  Touched  Modified  Written 

Dumping BLOB's from the MySQL database

Shinguz - Fri, 2011-04-22 13:52

A customer who is handling digital certificates had a problem with one of those. So we had to investigate.

Because the certificate is in binary form it is stored in a BLOB and we had to extract it from the database to do some verifications.

What first came to my mind was to extract the certificate with the SELECT INTO OUTFILE command. But the verification tool complained and told us that the certificate has a wrong format.

Luckily I found in the documentation the following statement: If you use INTO …


Taxonomy upgrade extras:  English  MySQL  Blob  Dump  Select 

Configuration of MySQL for Shared Hosting

Shinguz - Fri, 2011-04-22 13:03

If you ask around about shared hosting setups with MySQL everybody is frightened. In fact it looks like shared hosting is one of the most difficult setups you can get.

The number of users is big, the number of tables huge and the load pattern is completely unpredictable and the queries often very, let us say: non-optimal.

Here one of the DBA wisdoms come into play: Controlling developers is like herding cats.

If you talk to the Shared MySQL Hoster they confirm that this setups are very demanding!

Why is …


Taxonomy upgrade extras:  Configuration  Shared  Hosting  Hoster  Setup  Limitnofile  Table_open_cache  Table_definition_cache  Open_files_limit  Multi-Tenant 

The DRBD Module for FromDual Performance Monitor for MySQL is now available

FromDual.en - Fri, 2011-04-01 21:59

FromDual has released today the next version v0.6 of its FromDual Performance Monitor for MySQL.

The most important improvement of the new release is the new monitoring module for DRBD devices which are often used in MySQL High Availability (HA) set-ups.

More information about the new functionality added you can find in the article MySQL Performance Monitor with DRBD monitoring capabilities, MySQL Performance Monitor and in the MySQL HA (high availability) cookbook.

The FromDual Performance Monitor for …


Taxonomy upgrade extras:  Drbd  Performance Monitor  Release  Maas 

MySQL HA (high availability) Cluster cookbook

Shinguz - Sun, 2011-03-27 18:16

In the following article I have summarized some steps and hints to set-up a MySQL active/passive failover Cluster also sometimes called MySQL HA.

With such a set-up you can achieve a 99.99% (4x9) HA set-up for MySQL (52 minutes downtime per year). The same procedure also works for PostgreSQL, Oracle and other database systems running on Linux (DRBD runs on Linux only).

The concept

The concept of an active/passive failover Cluster is the following:

  • You have 2 servers (also called nodes).
  • They communicate …

Taxonomy upgrade extras:  English  High Availability  Cluster  Failover  Ha  Drbd  Heartbeat  Bonding  Active-Passive 

MySQL Performance Monitor with DRBD monitoring capabilities

Shinguz - Sat, 2011-03-26 11:25

The FromDual Performance Monitor for MySQL has now a new module for monitoring DRBD. Since more an more of our customers want to run MySQL High Availability solutions based on DRBD we have implemented this module.

We gather all information which are reported with the command:

# cat /proc/drbd

version: 8.3.8 (api:88/proto:86-94)
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----
    ns:1241240 nr:14311680 dw:15033532 dr:1241281 al:198 bm:52 lo:0 pe:0 ua:0
    ap:0 ep:1 wo:b oos:0

Now you …


Taxonomy upgrade extras:  High Availability  Performance  Drbd  Monitor  Mpm  Maas 

Be careful when using SAN

Shinguz - Sun, 2011-03-06 10:13

Be careful when using SAN (Storage Area Networks) or similar shared storage solutions (and any other virtualization, consolidation or cloud solutions).

This week it happened again: A customer called us because he had some troubles with his on-line shop (note the date!). Everybody in his company complained that the databases are answering slowly.

When looking on the box (with iostat) we have seen some I/O load and some pending reads in InnoDB (SHOW ENGINE INNODB STATUS and SHOW GLOBAL STATUS LIKE …


Taxonomy upgrade extras:  English  Performance  San  Virtualization  Consolidation  Cloud 

Pages

Subscribe to FromDual aggregator - FromDual all (en)