✕
ICT & Digital Skills

MySQL for Developers Training

This intensive MySQL for Developers Training equips software developers and database practitioners with the skills to design, query, optimise, and manage MySQL databases in real-world application environments. Participants will progress from foundational SQL concepts through advanced performance tuning, stored procedures, and application integration patterns. The course combines hands-on labs with practical scenarios drawn from enterprise and web development contexts.

⏱ 10 Days 📡 In-Person 🎯 Intermediate From KES 160,000

About This Course

MySQL remains the world's most widely deployed open-source relational database management system, powering everything from high-traffic web applications and e-commerce platforms to enterprise reporting systems and mobile back-ends. For developers, a deep command of MySQL is not optional — it directly determines the performance, reliability, and scalability of the applications they build. Yet many developers who write SQL daily have significant gaps in areas such as query optimisation, indexing strategy, transaction management, and secure database design.

TrainingComplex's MySQL for Developers Training is a rigorous, ten-day programme designed to close those gaps and elevate participants from competent SQL writers to confident MySQL professionals. The curriculum is carefully sequenced to build knowledge progressively: early modules establish a solid architectural and data-modelling foundation, mid-programme modules focus on advanced querying, indexing, and stored logic, and later modules tackle performance tuning, replication, security hardening, and integration with application frameworks.

Every concept is reinforced through hands-on laboratory exercises using live MySQL instances. Participants will design and normalise schemas, write complex multi-table queries, analyse execution plans, build stored procedures and triggers, configure user privileges, and connect MySQL to application code using industry-standard connectors. By the end of the programme, delegates will be equipped to make sound architectural decisions, write highly efficient SQL, and maintain secure and scalable MySQL-backed systems in professional development environments.

Who Should Attend

Learning Objectives

Course Modules

Module 1: MySQL Architecture and Environment Setup

  • MySQL server architecture: client/server model, connection handling, and the query processing pipeline
  • Storage engines compared: InnoDB vs MyISAM vs Memory — choosing the right engine for the workload
  • Installing and configuring MySQL 8.x on Linux and Windows; using MySQL Workbench and the CLI
  • Key configuration parameters in my.cnf/my.ini and their impact on performance and behaviour
  • MySQL system variables: understanding global vs session scope, and using SET PERSIST to make runtime changes durable across restarts
  • The InnoDB buffer pool, redo log, and undo log: how each component contributes to crash recovery and overall throughput

Module 2: Relational Data Modelling and Schema Design

  • Entity-relationship modelling: identifying entities, attributes, and relationships for a real business domain
  • Normalisation from 1NF through 3NF and BCNF with practical worked examples
  • Choosing appropriate data types: integer families, VARCHAR vs TEXT, DATE/DATETIME, JSON, and spatial types
  • Implementing primary keys, foreign keys, unique constraints, and check constraints to enforce data integrity
  • When and how to deliberately denormalise: summary tables, redundant columns, and the read-performance trade-offs that justify each decision
  • Designing for changeability: using surrogate keys, avoiding business-data primary keys, and structuring schemas to accommodate evolving requirements without cascading rewrites

Module 3: Core SQL for Developers

  • Advanced SELECT: aliases, expressions, CASE statements, and conditional aggregation with GROUP BY and HAVING
  • Multi-table queries: INNER, LEFT, RIGHT, and CROSS joins plus self-joins for hierarchical data
  • Subqueries: correlated and non-correlated subqueries in SELECT, FROM, and WHERE clauses
  • Set operations: UNION, UNION ALL, INTERSECT, and EXCEPT for combining result sets
  • Data modification statements: INSERT INTO ... SELECT, multi-row INSERT, UPDATE with JOIN, and DELETE with JOIN for efficient bulk operations
  • Handling NULLs correctly: IS NULL, IS NOT NULL, COALESCE, NULLIF, and the three-valued logic implications for WHERE and JOIN conditions

Module 4: Advanced SQL: CTEs and Window Functions

  • Common Table Expressions (CTEs): syntax, use cases, and how CTEs improve query readability and structure
  • Recursive CTEs for traversing hierarchical and graph-like data structures
  • Window functions: ROW_NUMBER, RANK, DENSE_RANK, NTILE, and their PARTITION BY and ORDER BY clauses
  • Aggregate window functions: running totals, moving averages, and lead/lag analysis with LEAD and LAG
  • Frame specification with ROWS and RANGE clauses: controlling which rows contribute to each window calculation for precise analytical results
  • Combining CTEs and window functions in multi-step analytical queries: structuring complex reporting logic for both clarity and optimizer efficiency

Module 5: Indexing Strategy and Query Optimisation

  • How InnoDB B-tree indexes work: clustered vs secondary indexes and the concept of index selectivity
  • Using EXPLAIN and EXPLAIN ANALYZE to read execution plans and identify full table scans and inefficient joins
  • Composite indexes, covering indexes, and prefix indexes — when to use each and pitfalls to avoid
  • Common query anti-patterns: implicit type conversion, functions on indexed columns, and SELECT * misuse
  • Index maintenance overhead: how INSERT, UPDATE, and DELETE operations affect index fragmentation, and when to use ANALYZE TABLE and OPTIMIZE TABLE
  • Using the sys schema views such as schema_unused_indexes and schema_redundant_indexes to audit and rationalise index sets in production schemas

Module 6: Stored Procedures, Functions, and Control Flow

  • Creating and calling stored procedures: parameters (IN, OUT, INOUT), local variables, and error handling with DECLARE ... HANDLER
  • User-defined functions (UDFs): deterministic vs non-deterministic functions and appropriate use cases
  • Control flow programming: IF/ELSEIF/ELSE, CASE, WHILE, REPEAT, and LOOP constructs
  • Cursors for row-by-row processing and the trade-offs compared to set-based SQL operations
  • Debugging stored routines: using temporary logging tables, simulated debug output, and the MySQL Workbench routine debugger to trace execution
  • Managing stored routine security: DEFINER vs INVOKER rights, privilege implications of SQL SECURITY clauses, and minimising attack surface in multi-tenant schemas

Module 7: Triggers and Scheduled Events

  • Trigger fundamentals: BEFORE and AFTER triggers on INSERT, UPDATE, and DELETE operations
  • Using OLD and NEW row references to audit changes, enforce complex business rules, and maintain derived data
  • MySQL Event Scheduler: creating, enabling, and managing recurring and one-time scheduled events
  • Potential pitfalls of triggers — performance overhead, debugging challenges, and cascading trigger risks
  • Implementing a robust audit trail with triggers: writing change history to a dedicated audit table including user, timestamp, operation type, and before/after values
  • Testing and documenting trigger logic: strategies for isolating trigger behaviour in test environments and maintaining accurate schema documentation as trigger definitions evolve

Module 8: Transactions, Locking, and Concurrency Control

  • ACID properties and how InnoDB implements atomicity, consistency, isolation, and durability
  • Transaction management: START TRANSACTION, COMMIT, ROLLBACK, and SAVEPOINT
  • Isolation levels (READ UNCOMMITTED through SERIALIZABLE) and the phenomena they prevent: dirty reads, non-repeatable reads, and phantom reads
  • Row-level locking, deadlock detection, and strategies for minimising lock contention in concurrent applications
  • Optimistic vs pessimistic concurrency control: when to use SELECT ... FOR UPDATE vs application-level versioning with a row-version or timestamp column
  • Diagnosing live locking issues using INFORMATION_SCHEMA.INNODB_TRX, INNODB_LOCKS, and the Performance Schema data_locks table to identify blocking transactions

Module 9: MySQL Security and User Management

  • MySQL privilege system: creating users, granting and revoking object-level and global privileges, and using roles in MySQL 8
  • Securing the MySQL installation: removing anonymous accounts, disabling remote root login, and applying the validate_password component
  • Defending against SQL injection: parameterised queries, prepared statements, and stored procedure boundaries
  • Encryption at rest and in transit: enabling TLS/SSL connections and understanding InnoDB tablespace encryption
  • Auditing database activity with the MySQL Enterprise Audit plugin or the open-source MariaDB Audit Plugin: configuring audit logs and filtering by user, host, or event type
  • Implementing least-privilege application accounts: separating read-only, read-write, and administrative credentials and rotating passwords without application downtime using MySQL roles

Module 10: Partitioning and Performance for Large Datasets

  • Table partitioning types: RANGE, LIST, HASH, and KEY partitioning — use cases and partition pruning behaviour
  • Query caching strategies and the role of the Performance Schema and sys schema in identifying bottlenecks
  • MySQL optimizer hints and the use of FORCE INDEX, STRAIGHT_JOIN, and optimizer_switch flags
  • Analysing slow queries with the slow query log and pt-query-digest from Percona Toolkit
  • Partition management operations: adding, dropping, reorganising, and exchanging partitions with ALTER TABLE, and the impact on maintenance windows for large tables
  • InnoDB buffer pool tuning for large datasets: sizing the buffer pool, configuring multiple buffer pool instances, and using the buffer pool load/dump feature to warm the cache after restart

Module 11: MySQL Replication and High Availability

  • Binary log-based replication: how MySQL replication works, replication formats (ROW, STATEMENT, MIXED), and setting up a primary/replica topology
  • GTID-based replication: benefits over traditional log-file/position replication and failover simplification
  • MySQL InnoDB Cluster and Group Replication: architecture overview and use cases for automatic failover
  • Read/write splitting patterns in application code and connection pooling with ProxySQL
  • Monitoring replication health: tracking seconds_behind_source, replication lag alerting, and using Performance Schema replication tables to diagnose apply-thread bottlenecks
  • Handling schema changes in a live replication topology: online DDL with ALTER TABLE ALGORITHM=INPLACE/INSTANT, and using pt-online-schema-change to avoid replication lag on large tables

Module 12: Backup, Recovery, and Monitoring

  • Logical backups with mysqldump and mysqlpump: options, scheduling, and consistent backup of InnoDB tables
  • Physical backups with MySQL Enterprise Backup and Percona XtraBackup: hot backup procedures and point-in-time recovery
  • MySQL Performance Schema: key tables for monitoring queries, waits, memory, and connection activity
  • Setting up alerting and dashboarding with Prometheus and Grafana for MySQL operational health
  • Backup validation and restoration testing: verifying backup integrity with checksums, rehearsing full and point-in-time restores in a staging environment, and documenting recovery time objectives
  • Binary log management for point-in-time recovery: configuring binlog retention with binlog_expire_logs_seconds, replaying binary logs with mysqlbinlog, and identifying the precise stop position for targeted recovery

Module 13: Application Integration and Capstone Project

  • Connecting MySQL to Python applications using mysql-connector-python and SQLAlchemy ORM — connection pooling and best practices
  • Integrating MySQL with Node.js using the mysql2 library: async/await patterns, prepared statements, and error handling
  • Database migration management: using tools such as Flyway or Liquibase to version-control schema changes
  • Capstone project: participants design, implement, optimise, and present a complete MySQL database solution for a defined business scenario, incorporating schema design, stored logic, indexing, security, and application connectivity
  • Handling MySQL errors gracefully in application code: mapping server error codes to application exceptions, implementing retry logic for transient deadlock and lock-wait-timeout errors, and surfacing meaningful messages to end users
  • Connection pool sizing and management in production: understanding the relationship between max_connections, thread_stack, and application-side pool settings to prevent connection exhaustion under high concurrency

Requirements & Prerequisites

Participants should have a working knowledge of at least one programming language (Python, Java, Node.js, or similar) and some prior exposure to basic SQL concepts such as SELECT, INSERT, UPDATE, and DELETE. Familiarity with the concepts of tables, rows, and relational data is assumed. Prior formal training in database administration is not required, but basic comfort navigating a command-line interface will be beneficial.

Training Methodology

Organisational Benefits

Where Is MySQL for Developers Training Offered?

This course runs in-person across: Johannesburg, Mombasa, Nakuru, Lagos, Arusha, Accra, Kisumu, Riyadh, Pretoria, Dar es Salaam, Addis Ababa, Kampala, Naivasha, Dubai, Zanzibar, Abuja, Nairobi, Cape Town, Kigali, plus Live Virtual (online) cohorts. Browse live dates for your city below.

Upcoming Schedules

LocationFormatDatesPrice
Johannesburg, South Africa In-Person 5 Oct 2026 – 16 Oct 2026 USD 7,000
Mombasa, Kenya In-Person 5 Oct 2026 – 16 Oct 2026 KES 230,000
Nakuru, Kenya In-Person 12 Oct 2026 – 23 Oct 2026 KES 230,000
Lagos, Nigeria In-Person 12 Oct 2026 – 23 Oct 2026 USD 5,000
Arusha, Tanzania In-Person 19 Oct 2026 – 28 Oct 2026 USD 4,200
Accra, Ghana In-Person 19 Oct 2026 – 28 Oct 2026 USD 7,600
Kisumu, Kenya In-Person 19 Oct 2026 – 28 Oct 2026 KES 240,000
Riyadh, Saudi Arabia In-Person 19 Oct 2026 – 30 Oct 2026 USD 9,000
Pretoria, South Africa In-Person 19 Oct 2026 – 28 Oct 2026 USD 6,600
Live Virtual Online 19 Oct 2026 – 28 Oct 2026 KES 160,000
Dar es Salaam, Tanzania In-Person 19 Oct 2026 – 30 Oct 2026 USD 4,600
Addis Ababa, Ethiopia In-Person 19 Oct 2026 – 28 Oct 2026 USD 4,800
Kampala, Uganda In-Person 19 Oct 2026 – 28 Oct 2026 USD 3,800
Naivasha, Kenya In-Person 19 Oct 2026 – 28 Oct 2026 KES 240,000
Live Virtual Online 24 Oct 2026 – 13 Dec 2026 KES 160,000

+235 more dates — view live schedule →

Frequently Asked Questions

Do I need to be an experienced DBA to attend this course?

No, this course is designed for developers rather than DBAs. You need a working knowledge of at least one programming language and basic familiarity with SQL concepts such as SELECT, INSERT, UPDATE, and DELETE. Prior DBA experience is not required.

Which version of MySQL does the course cover?

The course is built on MySQL 8.x, the current long-term support release. All lab exercises, syntax examples, and feature discussions reflect MySQL 8 capabilities, including roles, window functions, CTEs, and JSON support.

Will I receive a certificate upon completion?

Yes. Participants who attend the full ten-day programme and complete the capstone project will receive a TrainingComplex Certificate of Completion in MySQL for Developers, which can be shared on professional profiles and submitted as evidence of CPD.

What software do I need to bring or have installed?

For in-person sessions, TrainingComplex provides configured laboratory workstations with MySQL 8, MySQL Workbench, and all required connectors pre-installed. For the Live Virtual cohort, participants will receive a pre-course environment setup guide to install the necessary tools on their own machines before Day 1.

Is this course suitable for full-stack developers who use an ORM and rarely write raw SQL?

Absolutely — in fact, this course is particularly valuable for ORM-heavy developers. Understanding what MySQL actually executes behind ORM-generated queries is essential for diagnosing performance problems and making sound schema decisions. The course includes dedicated coverage of how ORMs interact with MySQL at the query level.

View Live Schedule & Book →