CentOS 5.8 and earlier use Perl module DBD::mysql v3.0007 which has a bug that causes Perl not to flag UTF-8 data as being UTF-8. Presuming that the MySQL table/column is using UTF-8, and the Perl MySQL connection is also using UTF-8, then a correct system returns: PV = 0x9573840 "\343\203\213 \303\250"\0 [UTF8 "\x{30cb} \x{e8}"] That’s a Devel::Peek inside a Perl scalar variable which [...]
Impact of memory allocators on MySQL performance
MySQL server intensively uses dynamic memory allocation so a good choice of memory allocator is quite important for the proper utilization of CPU/RAM resources. Efficient memory allocator should help to improve scalability, increase throughput and keep memory footprint under the control. In this post I’m going to check impact of several memory allocators on the [...]
Faster Point In Time Recovery with LVM2 Snaphots and Binary Logs
LVM snapshots is one powerful way of taking a consistent backup of your MySQL databases – but did you know that you can now restore directly from a snapshot (and binary logs for point in time recovery) in case of that ‘Oops’ moment? Let me show you quickly how. This howto assumes that you already [...]
Connecting orphaned .ibd files
There are two ways InnoDB can organize tablespaces. First is when all data, indexes and system buffers are stored in a single tablespace. This is typicaly one or several ibdata files. A well known innodb_file_per_table option brings the second one. Tables and system areas are split into different files. Usually system tablespace is located in [...]
More patches
After some pause we are going to announce bunch of patches we made and ported for last period. Ported patches (ported from Google V2 patch): – innodb_fsync_source.patch – Show information about callers of fsync, more info – innodb_io_tune.patch – Port of two patches InnodbIOTune and InnodbAsync, more info – innodb_extra_status.patch – Show more information about [...]
Mirrored Binlogs patch
Google patches V1 contain interesting patch to mirror binary log on slave. Although Google is preparing GlobalTransactionId patch, which going to be replacement for MirroredBinlogs, we still think mirroring binary logs is very useful for: Backup of binary logs in real time High availability, to switch master load to slave with mirrored binary logs By [...]
MySQL – to use or not to use
Reading this slashdot article today and two CIO magazine articles linked from it. Such discussions started at right place at right time always attract a lot of flamers and can be fun to read. What hit me this time is quality of the articles in CIO magazine. If this is what managers suppose to use [...]
MySQL Releases first real Community Release
Few days ago MySQL released MySQL 5.0.37 which I would call first real Community Version, because unlike previous versions which were released from the same source tree as Enterprise MySQL this one has some community features added, which is great. Also over last half a year MySQL seems to have organized resources for Community Engineering [...]
Binaries of MySQL 5.0.33 Community release for AMD64 / EM64T
Update 3 June 2008: We have removed the builds below, since they are quite obsolete and no one has posted comments about them since more than a year ago. Great news are MySQL finally released new Community release – MySQL 5.0.33, which however as promised comes without Binaries. This version also does not have any [...]

