MySQL 101

Webinar 6/27: MySQL Troubleshooting Best Practices: Monitoring the Production Database Without Killing Performance

performance troubleshooting MySQL monitoring tools

Please join Percona’s Principal Support Escalation Specialist Sveta Smirnova as she presents Troubleshooting Best Practices: Monitoring the Production Database Without Killing Performance on Wednesday, June 27th at 11:00 AM PDT (UTC-7) / 2:00 PM EDT (UTC-4).
Register Now
 
During the MySQL Troubleshooting webinar series, I covered many monitoring and logging tools such as:

General, slow, audit, binary, error […]

Read more

Webinar Thu 6/21: How to Analyze and Tune MySQL Queries for Better Performance

database query tuning

Please join Percona’s MySQL Database Administrator, Brad Mickel as he presents How to Analyze and Tune MySQL Queries for Better Performance on Thursday, June 21st, 2018, at 10:00 AM PDT (UTC-7) / 1:00 PM EDT (UTC-4).
Register Now
 
Query performance is essential in making any application successful. In order to finely tune your queries you first […]

Read more

New MySQL 8.0 innodb_dedicated_server Variable Optimizes InnoDB from the Get-Go

MySQL 8.0 innodb_dedicated_server

In this post, we’ll look at the MySQL 8.0 innodb_dedicated_server variable.
MySQL 8.0 introduces a new variable called innodb_dedicated_server. When enabled, it auto tunes innodb_buffer_pool_size, innodb_log_file_size and innodb_flush_method at startup (if these variables are not explicitly defined in my.cnf).
The new MySQL 8.0 variable automatically sizes the following variables based on the RAM size of the […]

Read more

What is MySQL Partitioning?

MySQL Partitioning

In this blog, we’ll quickly look at MySQL partitioning.
Partitioning is a way in which a database (MySQL in this case) splits its actual data down into separate tables, but still get treated as a single table by the SQL layer.
When partitioning, it’s a good idea to find a natural partition key. You want to […]

Read more

Backups and Disaster Recovery

Backups and Disaster Recovery

In this post, we’ll look at strategies for backups and disaster recovery.
Note: I am giving a talk on Backups and Disaster Recovery Best Practices on July 27th.
Register Now

When discussing disaster recovery, it’s important to take your business’ continuity plan into consideration. Backup and recovery processes are a critical part of any application infrastructure.
A well-tested […]

Read more

Percona Live Open Source Database Conference 2017 Slides and Videos Available

Percona Live

The slides and videos from the Percona Live Open Source Database Conference 2017 are available for viewing and download. The videos and slides cover the keynotes, breakout sessions and MySQL and MongoDB 101 sessions.
To view slides, go to the Percona Live agenda, and select the talk you want slides for from the schedule, and […]

Read more

MySQL, –i-am-a-dummy!

In this blog post, we’ll look at how “operator error” can cause serious problems (like the one we saw last week with AWS), and how to avoid them in MySQL using
–i-am-a-dummy.
Recently, AWS had some serious downtime in their East region, which they explained as the consequence of a bad deployment. It seems like […]

Read more

used_columns: EXPLAIN FORMAT=JSON tells when you should use covered indexes

In the “MySQL Query tuning 101” video, Alexander Rubin provides an excellent example of when to use a covered index. On slide 25, he takes the query
select name from City where CountryCode = ’USA’ and District = ’Alaska’ and population > 10000 and adds the index
cov1(CountryCode, District, population, name) on table
City. With Alex’s query […]

Read more

Why base64-output=DECODE-ROWS does not print row events in MySQL binary logs

Lately I saw many cases when users specified option
–base64-output=DECODE-ROWS  to print out a statement representation of row events in MySQL binary logs just to get nothing. Reason for this is obvious: option
–base64-output=DECODE-ROWS  does not convert row events into its string representation, this is job of option
–verbose . But why users mix […]

Read more

How to obtain the MySQL version from an FRM file

I recently helped a customer figure out why a minor version MySQL upgrade was indicating that some tables needed to be rebuilt. The mysql_upgrade program should be run for every upgrade, no matter how big or small the version difference is, but when only the minor version changes, I would normally not expect it […]

Read more