Optimalizace databáze v mariadb/mysql

Odeslat odpověď


Odpoveď na tuto otázku je nutná pro rozlišení automatizovaných pokusů o registraci.
Smajlíci
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode je zapnutý
[img] je zapnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Optimalizace databáze v mariadb/mysql

Optimalizace databáze v mariadb/mysql

od RoliD » 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:

Kód: Vybrat vše

OPTIMIZE TABLE `jedna_tabulka`
"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:

Kód: Vybrat vše

mysqlcheck -u uzivatel -p -o -v jmeno_databaze jmeno_tabulky
Tento příkaz má zaplý switch -v verbose tedy upovídanost. Vypisuje vám jakou tabulku zrovna optimalizuje.

Nahoru