Managing SQL Drift: Ensuring Stability in Database Transitions

SQL drift is a significant challenge that occurs when SQL statements from an existing system produce unexpected results after migration to a new environment or system. These issues manifest in several critical ways: SQL statements may generate new execution errors, experience significant performance degradation, or yield differences in data integrity.

Read more

Percona Live Presentation: MySQL Security Essentials

The slides for my MySQL Security Essentials presentation at Percona Live 2015 MySQL Conference and Expo are now available. In this presentation I discuss just how insecure legacy versions of MySQL are and what are the essential requirements for securing your installation on disk, via network and with user privileges.

Read more

Inconsistent messaging for OpenStackClient

As I mentioned earlier in Moving to OpenStackClient CLI I came across several differences in reconciling the legacy CLI tools. I have also come across very inconsistent messaging. Here is a simple example.

Read more

Moving to OpenStackClient CLI

In working with the keynote CLI within the TripleO scripts I came across the following deprecation warning message. $ keystone token-get /usr/local/lib/python2.7/dist-packages/keystoneclient/shell.py:65: DeprecationWarning: The keystone CLI is deprecated in favor of python-openstackclient.

Read more

Percona Live Presentation: Improving Performance With Better Indexes

The slides for my Improving Performance With Better Indexes presentation at Percona Live 2015 MySQL Conference and Expo are now available. In this presentation I discuss how to identify, review and analyze SQL statements in order to create better indexes for your queries.

Read more

Updating MySQL on Ubuntu 12.04 LTS to MySQL 5.6

The Ubuntu 12.04.3 LTS release only provides MySQL 5.1 and MySQL 5.5 using the default Ubuntu package manager. Oracle (owners of the MySQL(tm)) now provide Debian/Ubuntu APT repositories for all GA and DMR versions of MySQL including supporting Ubuntu 12.

Read more

Validating MySQL version numbers

As part of a MySQL 5.5 to MySQL 5.6 upgrade across several Ubuntu servers of varying distros an audit highlighted a trivial but interesting versioning identification error in Ubuntu’s packaging of MySQL.

Read more

Dynamic recreation of InnoDB redo logs

MySQL 5.6 will now automatically recreate the InnoDB redo log files during a MySQL restart if the size (or number) of these logs changes, i.e. a change to innodb_log_file_size. See Changing the Number or Size of InnoDB Log Files which states “If InnoDB detects that the innodb_log_file_size differs from the redo log file size, it will write a log checkpoint, close and remove the old log files, create new log files at the requested size, and open the new log files.

Read more

Translated books in Chinese

I have just received copies of my Effective MySQL series that are available in Chinese. The picture speaks more than words.

Read more

SQL, ANSI Standards, PostgreSQL and MySQL

I have recently been working with the Donors Choose Open Data Set which happens to be in PostgreSQL. Easy enough to install and load the data in PostgreSQL, however as I live and breath MySQL, lets load the data into MySQL.

Read more

Loops in shell scripting

If you are die hard Bourne Shell (/bin/sh) scripter, it can be a challenge not to be enticed by the syntax niceties of the Born Again Borne Shell (/bin/bash). One example is the `{.

Read more

Understanding when EXPLAIN is not using an index as intended

When reading a MySQL Query Execution Plan (QEP) produced by the EXPLAIN command, generally one of the first observations is to validate an index is being used per table (i.e. per row of output).

Read more

What is testing?

In software development this is a simple question. What is [the purpose of] testing? If asked to give a one sentence answer what would you say? I have asked this simple question of attendees at many presentations, and also to software developers I have worked with or consulted to.

Read more

AWS cost saving tips – EBS Volumes

A trivial cost saving tip for checking if you are spending money in your AWS environment on unused resources. This is especially appropriate when using provisioned IOPS EBS volumes. $ ec2-describe-volumes | grep available VOLUME vol-44dff904 8 snap-d86d0884 us-east-1b available 2014-08-01T14:11:24+0000 standard VOLUME vol-62dff922 100 us-east-1b available 2014-08-01T14:11:24+0000 io1 1000 VOLUME vol-15dff955 8 snap-d86d0884 us-east-1b available 2014-08-01T14:11:24+0000 standard VOLUME vol-80a88ec0 8 snap-d86d0884 us-east-1b available 2014-08-01T15:12:54+0000 standard VOLUME vol-ca82a48a 100 us-east-1b available 2014-08-01T16:13:49+0000 standard VOLUME vol-5d79581d 8 snap-d86d0884 us-east-1b available 2014-08-01T18:27:01+0000 standard VOLUME vol-baf9dbfa 8 snap-d86d0884 us-east-1b available 2014-08-03T18:20:59+0000 standard VOLUME vol-53ffdd13 8 snap-d86d0884 us-east-1b available 2014-08-03T18:25:52+0000 standard VOLUME vol-ade7daed 8 snap-d86d0884 us-east-1b available 2014-08-13T20:10:46+0000 standard VOLUME vol-34e2df74 8 snap-065a2e52 us-east-1b available 2014-08-13T20:26:17+0000 standard VOLUME vol-cacef38a 100 snap-280ffb7f us-east-1b available 2014-08-13T21:19:18+0000 standard VOLUME vol-41350a01 8 snap-f23ccba5 us-east-1b available 2014-08-14T16:54:27+0000 standard VOLUME vol-51350a11 100 snap-fc3ccbab us-east-1b available 2014-08-14T16:54:27+0000 standard VOLUME vol-912f10d1 8 snap-96ee24c1 us-east-1b available 2014-08-14T17:15:06+0000 standard VOLUME vol-a82f10e8 100 snap-9dee24ca us-east-1b available 2014-08-14T17:15:06+0000 standard These are available and unused EBS volumes which you should consider deleting.

Read more

MySQL Admin 101 for System Admins – key_buffer_size

As discussed in my presentation to NYLUG , I wanted to provide system administrations with some really quick analysis and performance fixes if you had limited knowledge of MySQL. One of the most important things with MySQL is to tune memory properly.

Read more