MySQL Performance & Tuning
This MySQL Performance & Tuning course is designed for Database Administrators, Application Developers and Technical Consultants who need to monitor and tune the performance of MySQL servers and databases.
The course provides practical experience in monitoring and tuning MySQL servers and databases.
Versions supported 8, 5.7, 5.6.
The delegate will learn and acquire skills as follows:
- Developing a monitoring and tuning plan
- Using monitoring and diagnostic tools
- Using the Information Schema and Show commands to collect data for tuning
- Understanding normalization and de-normalization and their effect on performance
- Performance tuning tools
- Using load generation, stress testing and benchmarking tools
- Using server configuration and status variables
- Understanding the output from the Explain command
- Identifying and improving problem queries
- Making efficient use of indexes
- Monitoring and sizing memory caches
- Monitoring locks
- Tuning the InnoDB storage engine
- Tuning other standard storage engines
- Comparing and tuning dump and load performance
- Evaluating the use of partitioning for performance
Anyone who wishes to monitor and tune MySQL performance for MySQL 5.6, 5.7 and 8 databases.
To provide the skills necessary to monitor and tune MySQL performance.
There are currently no official certification examinations for MySQL Performance and Tuning.
Delegates must have a working knowledge of MySQL Database Administration.
This course is run on a Linux operating system, a basic knowledge of Linux/UNIX is recommended but is not essential.
This MySQL Performance & Tuning course does not cover clustering (other than at an overview level), replication or non-standard storage engines.
- MySQL Database Administration
- Perl Programming
- Apache Web Server
- PHP & MySQL for Web Development
- Course technical content is subject to change without notice.
- Course content is structured as sessions, this does not strictly map to course timings. Concepts, content and practicals often span sessions.
MySQL Performance & Tuning
Course Contents - DAY 1
Course Introduction
- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions
Session 1: INTRODUCTION TO PERFORMANCE TUNING
- Tuning Overview
- Tuning Levels
- Resolving Performance Issues
- Recommended Approach to Tuning
- Items to Evaluate
- Where to look
- Planning a Monitoring Routine
- Building a New Database for Performance
- Tuning an Existing Database
- Setting Suitable Goals
Session 2: MYSQL PERFORMANCE TUNING TOOLS
- Administration Tools
- The Information Schema
- MySQL 8 Information Schema Changes
- Performance-related SHOW Commands
- Benchmarking Tools
- The MySQL Performance Schema
- MonYog
- Exercises: Obtaining Performance Information
Session 3: SCHEMA DESIGN
- Normalisation
- De-normalisation
- Naming Conventions
- Load Generation, Stress Testing and Benchmarking Tools
- Selecting Data Types
- Data Types
- Character Sets
- Choosing Storage Engines
- Exercises: Effects of Design on Performance
Session 4: STATEMENT TUNING
- Overview of Statement Tuning
- Identifying Problem Queries
- The Optimizer
- Explain
- Exercises: Identifying Problem Queries and Using Explain
Session 5: INDEXES
- Index Overview
- Index Size
- Types of Index
- Index Tuning
- Indexes and Joins
- Descending Indexes
- Invisible Indexes
- InnoDB Cached Indexes Information
- Exercises: Indexes and Performance
Course Contents - DAY 2
Session 6: SERVER CONFIGURATION AND MONITORING
- Server Configuration Variables
- Server Status Variables
- Table Cache
- Multi-Threading
- Connection Issues
- Query Cache
- Exercises: Setting and Interpreting Server Variables and Caching
Session 7: LOCKING
- Types of Locking
- Locking and Storage Engines
- Effects of Locking on Performance
- Monitoring InnoDB Locks in MySQL 5,7 and 8
- MySQL 8 Disable Deadlock Detection
- Exercises: Locking and Performance
Session 8: THE INNODB ENGINE
- Transactions
- Crash Recovery
- Locking
- Monitoring InnoDB
- Caches and Buffers
- Configuring Data Files
- Configuring the Log Files
- Exercises: InnoDB Configuration and Performance
Course Contents - DAY 3
Session 9: OTHER STORAGE ENGINES
- MyISAM Engine
- Merge Engine
- Archive Engine
- Memory Engine
- Blackhole Engine
- CSV Engine
- The Spider Engine
- The ColumnStore Engine
- The MyRocks Engine
- Mixing Storage Engines
- Exercises: Storage Engine Performance
Session 10: OVERVIEW OF CLUSTERING AND PERFORMANCE
- Advantages Performance Advantages of Clustering
- Performance Issues and Clustering
- The NDBCluster Engine
- The Galera Cluster
- The Percona XtraDB Cluster
- MySQL InnoDB Cluster
- The Federated Engine
- The FederatedX Engine
- Overview of Other High Availability Techniques
- NOSQL and Mencached Overview
Session 11: DUMPING AND LOADING DATA
- SQL statements versus delimited data
- Parameters affecting dump performance
- Parameters affecting load performance
- Exercises: Dump and load performance
Session 12: PARTITIONED TABLES
- Partitioned tables concepts
- Range partitioning
- Hash partitioning
- Key partitioning
- List partitioning
- Composite partitioning or subpartitioning
- Partition Pruning
- MySQL 8 Partitioning new features
- Exercises: Partitioned Table Performance