MySQL Performans Optimallaşdırması

MySQL verilənlər bazası performansını analiz edən və optimallaşdırma təklifləri təqdim edən script.

Yayımlanma: 08.05.2024

Kod

#!/bin/bash

# MySQL Performance Tuning Script

MYSQL_USER="root"
MYSQL_PASS="${MYSQL_PASSWORD:-}"

if [ -z "$MYSQL_PASS" ]; then
    read -sp "MySQL password: " MYSQL_PASS
    echo ""
fi

echo "======================================"
echo "   MYSQL PERFORMANCE ANALYSIS"
echo "======================================"
echo ""

echo "--- Connection Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW STATUS LIKE 'Threads_connected';" 2>/dev/null
echo ""

echo "--- Query Cache Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW VARIABLES LIKE 'query_cache%';" 2>/dev/null
echo ""

echo "--- Slow Query Log Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW VARIABLES LIKE 'slow_query%';" 2>/dev/null
echo ""

echo "--- Table Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW TABLE STATUS;" 2>/dev/null | head -20
echo ""

echo "--- Optimization Recommendations ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "
SELECT 
    table_schema,
    table_name,
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb,
    table_rows
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema', 'mysql', 'performance_schema')
ORDER BY (data_length + index_length) DESC
LIMIT 10;
" 2>/dev/null

echo ""
echo "Analysis completed!"

İstifadə

chmod +x mysql_tuning.sh
./mysql_tuning.sh

Teqlər

mysql performance optimization tuning database