Jak mohu zmenšit velikost databáze MySQL?

databázový software, jako je MySQL, často používá různé techniky k urychlení vyhledávání a doručování požadovaných informací. Ve většině případů mají tyto techniky podobu dočasných databází, které jsou vytvořeny tak, aby sloužily jako meziprodukty a pomohly vám rychleji načíst požadovaná data. Jedinou nevýhodou těchto dalších databází je, že spotřebují další místo na disku. V tomto článku vám ukážeme různé způsoby, jak můžete zmenšit velikost databáze MySQL.

Jak mohu snížit velikost databáze MySQL?

existují dva široké přístupy, které můžete použít ke zmenšení velikosti databáze MySQL. Můžete buď zkusit optimalizovat strukturu databáze, nebo můžete odstranit zbytečná data. Níže budeme podrobněji zkoumat obě techniky.

jak funguje optimalizace pro databázi MySQL?

jak jsme již zmínili, databáze MySQL často vytvářejí interní tabulky ve snaze urychlit vyhledávací dotazy. Tyto dodatečné tabulky se však postupem času stávají méně účinnými, když přidáváte nová data a měníte stávající položky. Proto je dobré čas od času optimalizovat databázi. Nejen, že snížíte celkovou velikost databáze,ale také pravděpodobně uvidíte zvýšení výkonu!

máte dvě možnosti, pokud jde o optimalizaci databáze na naší sdílené hostingové platformě. Můžete buď použít náš 1-click optimalizátor, který je součástí našeho správce databází, nebo můžete jít více hands – on pomocí nástrojů poskytovaných phpMyAdmin.

Jak mohu optimalizovat databázi MySQL pomocí správce databází?

můžete snadno a rychle optimalizovat všechny tabulky v dané databázi MySQL díky sekci správce databází našeho ovládacího panelu. Správce databází vám bude k dispozici, pokud používáte náš bezplatný hosting webových stránek, prémiový sdílený hosting nebo některý z našich částečně dedikovaných webových serverů. Chcete-li optimalizovat databázi, postupujte takto:

  1. přejděte do části správce databází našeho ovládacího panelu.
  2. klikněte na název databáze, který chcete optimalizovat.
  3. otevřete kartu Správa.
  4. klikněte na možnost s názvem optimalizace 1-click.
velikost databáze MySQL můžete snížit jediným kliknutím díky možnosti optimalizace v našem správci databází.
velikost databáze MySQL můžete snížit jediným kliknutím díky možnosti optimalizace v našem správci databází.

Jakmile provedete výše uvedené akce, budou všechny tabulky ve vaší databázi optimalizovány. Mějte na paměti, že naše statistiky využití databáze nejsou aktualizovány v reálném čase, takže si možná nevšimnete okamžitého rozdílu v používání databáze. Chcete-li se dozvědět více o různých funkcích, které náš správce databází nabízí, můžete projít naším úplným průvodcem správcem databází.

Jak mohu optimalizovat tabulky databáze MySQL pomocí phpMyAdmin?

na rozdíl od našeho správce databází, který optimalizuje všechny tabulky najednou, vám phpMyAdmin poskytuje mnohem podrobnější kontrolu, pokud jde o to, které tabulky by měly být optimalizovány a které tabulky by měly zůstat nezměněny. Níže budeme zkoumat dvě techniky pro zmenšení velikostí tabulek pomocí phpMyAdmin: možnost Optimalizovat a komprimovat data z tabulek, které používají InnoDB storage engine.

kromě optimalizace tabulky vám phpMyAdmin poskytuje řadu dalších možností, které byste mohli považovat za užitečné. Více o tomto praktickém nástroji se můžete dozvědět v našem přehledu phpMyAdmin.

Jak mohu zmenšit velikost tabulky pomocí funkce Optimalizace v phpMyAdmin?

postupujte podle následujících kroků, abyste optimalizovali tabulky v databázi MySQL pomocí optimalizační funkce v phpMyAdmin:

  1. otevřete sekci správce databází na ovládacím panelu.
  2. klikněte na název databáze, který chcete optimalizovat.
  3. otevřete kartu Správa.
  4. klikněte na možnost phpMyAdmin, jak je uvedeno níže:
k nástroji phpMyAdmin můžete snadno přistupovat pomocí odkazu na kartě Správa našeho správce databází.
k nástroji phpMyAdmin můžete snadno přistupovat pomocí odkazu na kartě Správa našeho správce databází.
  1. phpMyAdmin se nyní otevře na nové kartě a zobrazí se vám seznam tabulek, které obsahují databázi. Umístěte zaškrtnutí před tabulky, které chcete optimalizovat.
  2. Jakmile provedete výběr, vyberte z rozbalovací nabídky možnost Optimalizovat tabulku. Tato možnost je součástí sekce údržby tabulky:
/wp-obsah / obrázky/2020/03/snížit-mysql-databáze-Velikost-3.png
/ wp-content / obrázky/2020/03/snížit-mysql-databáze-Velikost-3.png
  1. Jakmile vyberete příkaz optimalizovat tabulku, bude proveden automaticky a měli byste být prezentováni s dotazem SQL, který byl úspěšně proveden. zpráva:
úspěch! Vybrané tabulky byly úspěšně optimalizovány.
úspěch! Vybrané tabulky byly úspěšně optimalizovány.

jedna věc, kterou je třeba mít na paměti, je, že volba optimalizovat tabulku provádí různé akce v závislosti na úložišti, které vaše tabulky používají. Jako takový, účinky volby se mohou lišit od tabulky ke stolu. To platí zejména, pokud používáte různé úložné motory a pokud některé z vašich tabulek podléhají pravidelným úpravám, zatímco jiné tabulky zůstávají relativně nezměněny.

jak Komprimuji Data v databázi MySQL?

jak jsme již dříve poznamenali, různé úložné motory přicházejí s různými sadami funkcí. Jedním z vynikajících rysů InnoDB storage engine je jeho schopnost komprimovat data bez ztráty informací. Komprese je nejúčinnější, pokud vaše tabulky obsahují sloupce, které používají TEXT, BLO, VARCHAR, a VARBINARYdatové typy.

Chcete-li spustit kompresi na dané tabulce, musíte se nejprve ujistit, že dotyčná tabulka používá InnoDB storage engine. Tyto informace najdete v zobrazení struktury databáze phpMyAdmin. Toto zobrazení je nejsnadněji přístupné kliknutím na název databáze, jak je znázorněno na obrázku níže:

kliknutím na název databáze v phpMyAdmin se dostanete do zobrazení struktury vaší databáze.
kliknutím na název databáze v phpMyAdmin se dostanete do zobrazení struktury vaší databáze.

jakmile jste v zobrazení struktury, měli byste vidět seznam všech tabulek, které jsou obsaženy v databázi. Sloupec, který zobrazuje aktuální modul úložiště, se nazývá typ a je zvýrazněn níže:

phpMyAdmin používá nepříliš zřejmý typ záhlaví sloupce k označení modulu úložiště, který každá tabulka používá.
phpMyAdmin používá nepříliš zřejmý typ záhlaví sloupce k označení úložného motoru, který každá tabulka používá.

pokud vidíte InnoDB uveden jako storage engine na tabulkách, které chcete komprimovat, pak je dobré jít. Pokud však vidíte jakoukoli jinou hodnotu, budete muset převést tabulky, abyste nejprve použili InnoDB storage engine. Převod se provádí provedením krátkého příkazu SQL. Chcete-li začít, přepněte na kartu SQL v phpMyAdmin:

karta SQL v phpMyAdmin vám dává svobodu spouštět všechny příkazy SQL, které potřebujete.
karta SQL v phpMyAdmin vám dává svobodu spouštět všechny příkazy SQL, které potřebujete.

jakmile tam, vložte následující kód:

ALTER TABLE my_table ENGINE = InnoDB;

nezapomeňte nahradit my_table názvem tabulky, kterou chcete převést. V našem příkladu převádíme tabulku s názvem orders, takže náš příkaz bude vypadat takto:

ALTER TABLE orders ENGINE = InnoDB;

jakmile zadáte příkaz, spusťte jej kliknutím na tlačítko Go v pravém dolním rohu. Pokud bude úspěšný, měla by vám být předložena zpráva o úspěchu, jak je uvedeno níže:

v závislosti na obsahu tabulky se může zobrazit jiná zpráva o úspěchu, ale obecně by měla vypadat podobně jako tato.
v závislosti na obsahu tabulky se může zobrazit jiná zpráva o úspěchu, ale obecně by měla vypadat podobně jako tato.

pokud chcete převést více tabulek na InnoDB storage engine, budete muset spustit výše uvedený příkaz pro každou z nich.

Nyní, když vaše tabulky používají InnoDB, můžete pokračovat ve skutečné kompresi dat MySQL. Samotná komprese je krátký příkaz SQL, který je také třeba spustit z karty SQL v phpMyAdmin. Zde je příkaz:

ALTER TABLE my_table ROW_FORMAT=COMPRESSED;

stejně jako při převodu tabulky je třeba my_table nahradit skutečným názvem tabulky. Jako příklad na obrázku níže komprimujeme tabulku s názvem orders:

komprese dat MySQL může znít komplikovaně, ale ve skutečnosti je to jednoduchý příkaz SQL, který musíte spustit.
komprese dat MySQL může znít komplikovaně, ale ve skutečnosti je to jednoduchý příkaz SQL, který musíte spustit.

jakmile zadáte příkaz komprese, stiskněte tlačítko Go pro jeho provedení. Pokud chcete komprimovat více tabulek, můžete tak učinit spuštěním příkazu SQL pro každou tabulku.

pokud vše půjde dobře s kompresí, phpMyAdmin by vás měl pozdravit úspěšnou zprávou podobnou této.
pokud vše půjde dobře s kompresí, phpMyAdmin by vás měl pozdravit úspěšnou zprávou podobnou této.

jak odstraním tabulky pomocí phpMyAdmin?

další alternativou, pokud jde o uvolnění úložného prostoru, je odstranění dat, která již nepotřebujete z databáze. Můžete buď odstranit jednotlivé položky nebo celé tabulky.

Chcete-li odstranit tabulku, přejděte na kartu Struktura databáze, abyste viděli všechny své tabulky. Odtud vyberte možnost Drop vedle tabulky, kterou chcete odstranit, a potvrďte svůj výběr. Před potvrzením odstranění zkontrolujte, zda jste vybrali správnou tabulku, protože tuto akci nelze vrátit zpět.

phpMyAdmin používá termín Drop k označení odstranění celé tabulky.
phpMyAdmin používá termín Drop k označení odstranění celé tabulky.

pokud odstranění celé databázové tabulky není pro vás volbou, můžete zvážit odstranění jednotlivých položek z různých tabulek, které již nepotřebujete. Toho lze dosáhnout spuštěním různých příkazů SQL. Níže představíme velmi základní příkaz SQL, který dokáže odstranit jednu položku databáze.

vzorová tabulka se dvěma položkami (řádky). Odstraníme druhý řádek.
vzorová tabulka se dvěma položkami (řádky). Odstraníme druhý řádek.

v tomto příkladu použijeme výše uvedenou tabulku se dvěma řádky. Cílem je odstranit druhý řádek při zachování prvního.

všimnete si, že všechny tabulky mají obvykle sloupec id, který obsahuje jedinečné číslo, které identifikuje danou položku. V našem příkladu se sloupec id ve skutečnosti nazývá id, ale vaše tabulky mohou jako název sloupce použít jiné slovo. Jakmile najdete sloupec, který ukládá jedinečné identifikátory pro každou položku, poznamenejte si hodnotu přidruženou k položce (řádku), kterou chcete odstranit. S těmito informacemi po ruce přepněte na kartu SQL a spusťte následující příkaz SQL:

DELETE FROM my_table where id_column = 'my_id';

ve výše uvedeném kódu budete muset provést tři náhrady:

  • my_table měl by být nahrazen názvem tabulky, ze které odstraníte.
  • id_column by měl být nahrazen názvem sloupce, který ukládá vaše jedinečné identifikátory.
  • my_id by měl být nahrazen skutečným identifikátorem řádku, který chcete smazat.

náš příklad používá tabulku products. Tato tabulka obsahuje sloupec id a jedinečný identifikátor položky, kterou chceme smazat, je 2. Takže náš příkaz SQL by měl vypadat takto:

základní SQL příkaz pro odstranění položky s určitým identifikátorem. S dostatečnými znalostmi SQL můžete vytvářet složité dotazy, které odstraňují data na základě více kritérií.
základní příkaz SQL pro odstranění položky se specifickým identifikátorem. S dostatečnými znalostmi SQL můžete vytvářet složité dotazy, které odstraňují data na základě více kritérií.

když stiskneme tlačítko Go, provede se příkaz SQL a odstranění bude dokončeno. Nyní naše tabulka již neobsahuje druhou položku:

při použití příkazu DELETE buďte zvlášť opatrní! Především se ujistěte, že jste úspěšně lokalizovali sloupec, který obsahuje jedinečné identifikátory tabulky.
při použití příkazu DELETE buďte zvlášť opatrní! Především se ujistěte, že jste úspěšně lokalizovali sloupec, který obsahuje jedinečné identifikátory tabulky.

pokud používáte moderní systém pro správu obsahu, jako je WordPress, Drupal, Joomla nebo podobné, měli byste zvážit použití nástrojů pro správu backendu CMS pro správu a odstranění dat. Ruční odstranění položek z databáze by mělo být vaší poslední možností.

závěr

jako vlastník webových stránek je vždy dobré dávat pozor na využití databáze. To platí zejména, pokud používáte plán sdíleného hostingu a máte limit velikosti databáze. Pokud náhodou dosáhnete limitu úložiště, váš web může začít zobrazovat všechny druhy varování a chybových zpráv, například matoucí zprávu „vložit příkaz odepřen uživateli“.

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna.