MySQL Concurrency: Locking and Transactions for MySQL Developers and DBAs
- 4h 43m
- Jesper Wisborg Krogh
- Apress
- 2021
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.
You will:
- 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
About the Author
Jesper Wisborg Krogh has worked with MySQL databases since 2006 both as a SQL developer and a database administrator, and for more than eight years as part of the Oracle MySQL Support team. He currently works as a database reliability engineer for Okta. He has spoken at MySQL Connect and Oracle OpenWorld on several occasions. In addition to his books, Jesper regularly blogs on MySQL topics and has authored approximately 800 documents in the Oracle Knowledge Base. He has contributed to the sys schema and four Oracle Certified Professional (OCP) exams for MySQL 5.6–8. Jesper holds a PhD in computational chemistry, lives in Sydney, Australia, and enjoys spending time outdoors walking, traveling, and reading. His areas of expertise include MySQL Cluster, MySQL Enterprise Backup (MEB), performance tuning, and the performance and sys schemas.
In this Book
-
Introduction
-
Monitoring Locks and Mutexes
-
Monitoring InnoDB Transactions
-
Transactions in the Performance Schema
-
Lock Access Levels
-
High-Level Lock Types
-
InnoDB Locks
-
Working with Lock Conflicts
-
Reducing Locking Issues
-
Indexes and Foreign Keys
-
Transactions
-
Transaction Isolation Levels
-
Case Study: Flush Locks
-
Case Study: Metadata and Schema Locks
-
Case Study: Record-Level Locks
-
Case Study: Deadlocks
-
Case Study: Foreign Keys
-
Case Study: Semaphores