Database
MariaDB Performance Tuning on Linux Servers
- Author :Liam K.
- Date :March 08, 2026
- Time :17 minutes
Step 1: Gather Baseline Metrics
bash
mysql -e "SHOW GLOBAL STATUS LIKE 'Threads_connected';"
mysql -e "SHOW GLOBAL STATUS LIKE 'Queries';"
mysql -e "SHOW GLOBAL STATUS LIKE 'Slow_queries';"
mysql -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"Step 2: Enable Slow Query Log
bash
sudo tee /etc/mysql/mariadb.conf.d/60-slow-query.cnf >/dev/null <<'EOF'
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1
EOF
sudo systemctl restart mariadbStep 3: Analyze Slow Queries
bash
sudo apt install -y percona-toolkit
sudo pt-query-digest /var/log/mysql/slow.log | lessStep 4: Add Missing Indexes
Review top slow statements and add indexes where full scans are avoidable.
sql
EXPLAIN SELECT * FROM orders WHERE customer_id = 42 ORDER BY created_at DESC;
ALTER TABLE orders ADD INDEX idx_orders_customer_created (customer_id, created_at);Step 5: Tune InnoDB Memory
For dedicated DB servers, set buffer pool to roughly 60-70% of RAM.
bash
sudo tee /etc/mysql/mariadb.conf.d/61-innodb-tuning.cnf >/dev/null <<'EOF'
[mysqld]
innodb_buffer_pool_size = 4G
innodb_buffer_pool_instances = 4
innodb_log_file_size = 512M
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 1
EOF
[...]Command truncated. Copy to view full command.
Step 6: Set Connection Limits Safely
bash
sudo tee /etc/mysql/mariadb.conf.d/62-connections.cnf >/dev/null <<'EOF'
[mysqld]
max_connections = 200
thread_cache_size = 100
table_open_cache = 4000
EOF
sudo systemctl restart mariadbStep 7: Validate with mysqltuner
bash
sudo apt install -y mysqltuner
mysqltunerStep 8: Watch for Regression
bash
mysql -e "SHOW GLOBAL STATUS LIKE 'Slow_queries';"
mysql -e "SHOW ENGINE INNODB STATUSG" | head -n 80"The fastest database tweak is often a better index, not a more aggressive global setting."
Technical Author

Liam K.
System administrator and technical writer specializing in server infrastructure, security and deployment. Creating comprehensive guides to help you master server administration.
Related Guides
Ansible Dynamic Inventory for AWS at Scale
March 08, 2026
Ansible Role Testing with Molecule and CI Pipelines
March 08, 2026