Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 3517|Odpověď: 1

[Tipy] [Přenos] do MySQL Advanced: optimalizace příkazů tabulky

[Kopírovat odkaz]
Zveřejněno 17.06.2023 11:40:34 | | |
Při používání mysql můžete zjistit, že i když tabulka maže hodně dat, datové a indexové soubory tabulky jsou podivně malé. Je to proto, že mysql při mazání dat (zejména textu a BLOB) zanechá mnoho datových mezer, které zabírají místo původních dat, takže velikost souboru se nemění. Tyto díry mohou být v budoucnu znovu použity při vložení dat, a samozřejmě tam mohou zůstat. Tato díra nejen zvyšuje náklady na úložiště, ale také snižuje efektivitu skenování tabulky kvůli fragmentaci dat.

Scénáře použití:Pokud jste smazali velkou část tabulky, nebo jste provedli mnoho změn v tabulce s řádky proměnné délky (například s VARCHAR, LOB nebo TEXT), měli byste použít OPTIMALIZACI TABULKY. Smazané záznamy jsou uchovávány v propojeném seznamu a následné operace INSERT znovu používají staré umístění záznamu. OPTIMIZE TABLE můžete použít k přepracování nevyužitého prostoru a organizaci fragmentů datových souborů. [Když je z knihovny smazáno velké množství dat, můžete zjistit, že velikost datového souboru se nezmenšila. To je způsobeno fragmentací, která v datovém souboru zůstává po operaci mazání.


Ve většině nastavení nemusíte vůbec spouštět OPTIMALIZACI TABULKY. I když často aktualizujete řádky s proměnnou délkou, nemusíte je spouštět často, jednou týdně nebo jednou za měsíc, jen pro konkrétní tabulky.

OPTIMALIZOVAT TABULKU funguje pouze pro tabulky MyISAM, BDB a InnoDB.

Pro tabulky BDB je tabulka OPTIMIZE aktuálně přiřazena k tabulce ANALYZOVAT. U tabulek InnoDB je OPTIMALIZAČNÍ TABULKA mapována na ALTER TABULKU, která tabulku znovu sestavuje. Operace obnovy, aktualizují statistiky indexů a uvolňují nevyužité místo ve shlukovaných indexech.

Poznámka: MySQL během běhu OPTIMIZE TABLE uzamkne tabulku.

Pro myisam můžete přímo použít optimalizační tabulku table.name,Když je to engine InnoDB, zobrazí se "Tabulka nepodporuje optimalizaci, místo toho dělá recreate + analyzovat", a za normálních okolností, pokud převedete z myisam na innodb, použijete alter table table.name engine='innodb' k převodu, a můžete to také použít pro optimalizaci.Proto když jde o engine InnoDB, můžeme použít alter table table.name engine='innodb' místo optimalizace

Pro zobrazení před a po efektech můžete použít příkaz zobrazit stav tabulky, například zobrazit stav tabulky z [databáze] jako '[table_name]'; data_free ve výsledku návratu je úložný prostor zabíraný prázdnotou.

Shell skript, který implementuje MySQL časově dávkovou opravu kontrolní tabulky a optimalizaci tabulky optimalizace tabulky, je následující:

Původní:

Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.




Předchozí:Použijte nástroj SQLMAP pro infiltraci SQL injekčního testování
Další:Instalační tutoriál Consul v testovacím prostředí Windows
 Pronajímatel| Zveřejněno 06.07.2023 18:54:17 |
--Kontrolní seznam


-- Opravte stůl


-- Optimalizujte tabulku


Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com