Ta strona jest oryginalną dokumentacją PmaControl. Zachowuje praktyczną strukturę indeksu do pracy nad optymalizacją MySQL, bez kopiowania treści zewnętrznych i bez zależności od zewnętrznego produktu.
Cel
Kontrole schematu szukają struktur kosztownych w produkcji: brakujących indeksów, zbyt szerokich kolumn, brakujących kluczy głównych, historycznych tabel MyISAM i nieużywanych indeksów.
Co sprawdzać
- Tabele InnoDB bez klucza głównego.
- Zduplikowane lub silnie nadmiarowe indeksy.
- Kolumny
VARCHARlubTEXTużyte w zbyt szerokich indeksach. - Kolumny joinów z różnymi typami albo collation.
- Duże tabele bez strategii archiwizacji.
- Brak foreign keys tam, gdzie wymaga tego integralność biznesowa.
Przydatne zapytania
SELECT table_schema, table_name
FROM information_schema.tables t
WHERE engine = 'InnoDB'
AND table_schema NOT IN ('mysql', 'performance_schema', 'information_schema', 'sys')
AND NOT EXISTS (
SELECT 1
FROM information_schema.table_constraints c
WHERE c.table_schema = t.table_schema
AND c.table_name = t.table_name
AND c.constraint_type = 'PRIMARY KEY'
);
Najważniejsze
Dobra kontrola schematu łączy każdą anomalię z zapytaniem, planem wykonania albo mierzalnym kosztem operacyjnym.