Optimalizace databáze v mariadb/mysql
Napsal: pát 17. úno 2017 12:39:32
Je velmi vhodné občas zoptimalizovat (a také defragmentovat) databáze. Hlavně po větších změnách a mazáních zůstávají v databázích smazaná data. Databáze je totiž nemaže hned jak se provede příkaz ale porstě je jen označí jako smazané a odstraní se například při nejbližší optimalizaci. Netuším jak to má mariadb v sobě udělané, ale pokud např smažu z 10GB databáze 2GB dat, tak i po několika týdnech vidím že stále v databázi tato data zabírají místo a tedy i je pomalejší běh selectů do této databáze. Jak tedy tato data odstranit? Stačí provést příkaz který optimalizuje jednu tabulku:
"OPTIMIZE TABLE" je sql příkaz do sql konzole. V PhpMyAdminu či admineru jsou na optimalizaci konkrétní klikátka. Pokud ale optimalizujete větší databázi, typicky nad 1GB tak už je lepší (pokud máte možnost) z linux příkazové řádky spustit k tomu určenou toolu:
Tento příkaz má zaplý switch -v verbose tedy upovídanost. Vypisuje vám jakou tabulku zrovna optimalizuje.
Kód: Vybrat vše
OPTIMIZE TABLE `jedna_tabulka`
Kód: Vybrat vše
mysqlcheck -u uzivatel -p -o -v jmeno_databaze jmeno_tabulky