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