MySQL Concurrency

About the Book

Know how locks work in MySQL and how they relate to transactions. This book explains the major role that locks play in database systems, showing how locks are essential in allowing high-concurrency workloads. You will learn about lock access levels and lock granularities from the user level as well as table locks to record and gap locks. Most importantly, the book covers troubleshooting techniques when locking becomes a pain point.

Several of the lock types in MySQL have a duration of a transaction. For this reason, it is important to understand how transactions work. This book covers the basics of transactions as well as transaction isolation levels and how they affect locking. The book is meant to be your go-to resource for solving locking contention and similar problems in high-performance MySQL database applications.

Detecting locking issues when they occur is the first key to resolving such issues. MySQL Concurrency provides techniques for detecting locking issues such as contention. The book shows how to analyze locks that are causing contention to see why those locks are in place. A collection of six comprehensive case studies combine locking and transactional theory with realistic lock conflicts. The case studies walk you through the symptoms to look for in order to identify which issue you are facing, the cause of the conflict, its analysis, solution, and how to prevent the issue in the future.

What You Will Learn

  • Understand which lock types exist in MySQL and how they are used
  • Choose the best transaction isolation level for a given transaction
  • Detect and analyze lock contention when it occurs
  • Reduce locking issues in your applications
  • Resolve deadlocks between transactions
  • Resolve InnoDB record-level locking issues
  • Resolve issues from metadata and schema locks

Who This Book Is For

Database administrators and SQL developers who are familiar with MySQL and want to gain a better understanding of locking and transactions as well as how to work with them. While some experience with MySQL is required, no prior knowledge of locks and transactions is needed.

Errata

The official location for the errata is in the GitHub repository for the book in the file errata.pdf. (No errata has been published yet.) If you clone the repository, you can update the errata using the git pull command. This will also pull in any updated example files.

Details