MariaDB Training Course (2-5 days, from Beginner to Advanced) 

Note: this outline is our proposal, but the training can be tailored to your specific requirements upon prior request ahead of the proposed course date.

Why Learn MariaDB?

MariaDB is a community-developed, commercially supported fork of MySQL, intended to remain free and open-source software under the GNU General Public License. Development is led by some of the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle Corporation in 2009.

MariaDB intended to maintain high compatibility with MySQL, ensuring a drop-in replacement capability with library binary parity and exact matching with MySQL APIs and commands. However, new features diverge more. It includes new storage engines like Aria, ColumnStore, and MyRocks.

Audience

 

  • Developers

  • Database administrators

  • System administrators

 

Requirements (depending on the needed level)

  • knowledge of relational database concepts

  • knowledge of MySQL data types

  • be able run Queries using SQL

  • join tables and run basic DDL and DML statements

  • basic knowledge of UNIX/Linux is recommended

 

Course details

The agenda covers both fundamentals and advanced topics.

The final training outline will be designed depending on your particular requirements.

The practical exercises constitute a big part of the course time, besides demonstrations and theoretical presentations. Discussions and questions can be asked throughout the course.

 

Course Outline

 

The Server, Clients and Tools 

  • Introduction

  • The versions of MySQL and MariaDB

  • An Overview of MariaDB Architecture

  • MySQL Server

  • MySQL Tools

  • MySQL Admin

 

MySQL Workbench 

  • Installation

  • Connecting

  • Screens

Obtaining Metadata 

  • What is Metadata?

  • The mysqlshow Client Program

  • The SHOW and DESCRIBE Commands

  • The Information_Schema

  • Show Command and Information_Schema Differences

MariaDB Server Installation and Configuration 

  • MariaDB Distributions

  • Installing on Windows

  • Installing on Linux and UNIX

  • Starting and Stopping on Windows

  • Starting and Stopping on UNIX/Linux

  • Status Files

  • Upgrading the Server

  • Time Zone Tables

Configuring the Server 

  • MariaDB Server Options and Variables

  • MariaDB Status Variables

  • Configuring MySQL Enterprise Audit

 

SQL Modes, Log Files and Binary Logging 

  • MySQL Error Messages

  • The SHOW Errors Statement

  • The SHOW Warnings Statement

  • SQL Modes

  • Note Messages

  • The PERROR Utility

  • The General Log

  • The Error Log

  • The Slow Query Log

  • The Binary Logs

MariaDB Architecture

  • Client/Server Overview

  • Communication Protocols

  • The SQL Parser and Storage Engine Tiers

  • How MariaDB Uses Disk Space

  • How MariaDB Uses Memory

Transactions and Locking 

  • Locking Concepts

  • Explicit Table Locking

  • Advisory Locking

The Innodb Storage Engine

  • Introduction

  • Features of Innodb

  • Transactions

  • Referential Integrity

  • Physical Characteristics of Innodb Tables

  • System Tablespace Configuration

  • Log File and Buffer Configuration

  • Innodb Status

Other Storage Engines 

  • Introduction

  • The MYISAM Engine

  • The Merge Engine

  • Other Engines: Archive, Aria, Memory, Blackhole, CSV

  • Cluster Engine Overview

  • Overview of the ColumnStore, MyRocks and Spider Engines

Table Maintenance 

  • Table Maintenance Operations

  • Check Table

  • Repair Table

  • Analyze Table

  • Optimize Table

  • MySQL Check

  • MyISAM Table Maintenance and Repair Utilities

Backup and Recovery 

  • Designing a Backup and Recovery Strategy

  • The Advantages and Disadvantages of Different Backup Methods

  • Binary Backups of MYISAM Tables

  • Binary Backups of Innodb Tables

  • Recovery

  • Import and Export Operations

  • Exporting and Importing using SQL

  • Exporting from the Command Line using mysqldump

  • Importing from the Command Line using mysqlimport

  • Additional Backup Tools

User Management 

  • Introduction

  • User Accounts

  • Creating Users

  • Renaming Users

  • Changing Passwords

  • Dropping Users

  • Granting Privileges

  • The User Table

  • Connection Validation

Privileges 

  • Introduction

  • Types of Privileges

  • Revoking Privileges

  • Resource Limits

  • The MySQL Database

  • The Show Grants Command

Security and Upgrades 

  • Signs of Poor Security

  • Security Risks

  • Users, Operating System, File System and Network Security

  • Using SSL With MySQL

  • Remote Connecting to the MySQL Server Using SSH

Tuning Queries 

  • Tuning Overview

  • Identifying Candidates for Query Analysis

  • Using Explain to Analyze Queries

  • Meaning of Explain Output

  • Explain Extended

Tuning and Indexes 

  • Indexes for Performance

  • Creating and Dropping Indexes

  • Obtaining Index Metadata

  • Indexing Principles

  • Indexing and Joins

  • Fulltext Indexes

  • MyISAM Index Caching

Tuning and Tables 

  • General Table Optimizations

  • Myisam Specific Optimizations

  • Innodb Specific Optimizations

  • Other Engine Specific Optimizations

Tuning the Server 

  • Status Variables

  • Server Variables

  • Performance Schema Overview

  • The Query Cache

The Event Scheduler 

  • Event scheduler concepts

  • Event scheduler configuration

  • Creating, altering and dropping events

  • Event scheduler monitoring

  • Events and privileges

Partitioned Tables 

  • Partitioned tables concepts

  • Obtaining Partitioned Table Metadata

  • Types of Partitioning

  • Subpartitioning

  • Maintenance of partitioned tables

Overview of Cluster Storage Engines 

  • Overview of Clustering and Performance

  • NDBCluster Engine Overview

  • The Galera Cluster

  • The Percona XtraDB Cluster

  • MySQL InnoDB Cluster

  • The Federated Engine

  • The FederatedX Engine

  • Overview of Other High Availability Techniques

  • NOSQL and MemCached Overview

  • Features of Memcached with MySQL

 

Overview of High Availability 

  • High Availability Goals

  • High Availability Concepts

  • Design for High Availability

  • Definition of Availability

  • High Availability Terminology

 

Configure Master Slave Replication 

  • Replication Overview

  • When to Use Replication

  • Testing Replication

  • Excluding Databases or Tables from Replication

  • Replication Using GTIDs

  • Controlled Switchover