Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 3517|Odpoveď: 1

[Tipy] [Transfer] do MySQL Advanced: optimalizovať príkaz tabuľky

[Kopírovať odkaz]
Zverejnené 17. 6. 2023 11:40:34 | | |
Pri používaní mysql môžete zistiť, že hoci tabuľka maže veľa dát, dátové a indexové súbory tabuľky sú zvláštne malé. Je to preto, že mysql pri mazaní dát (najmä textu a BLOB) zanecháva veľa dátových dier, ktoré zaberajú miesto pôvodných dát, takže veľkosť súboru sa nemení. Tieto diery môžu byť v budúcnosti znovu použité pri vkladaní dát, a samozrejme tam môžu zostať. Táto diera nielenže zvyšuje náklady na ukladanie, ale tiež znižuje efektivitu skenovania tabuľky v dôsledku fragmentácie dát.

Scenáre použitia:Ak ste vymazali veľkú časť tabuľky alebo ste urobili veľa zmien v tabuľke s riadkami s variabilnou dĺžkou (napríklad s VARCHAR, LOB alebo TEXT), mali by ste použiť OPTIMALIZOVAŤ TABUĽKU. Vymazané záznamy sa uchovávajú v prepojenom zozname a následné operácie INSERT opätovne používajú staré miesto záznamu. OPTIMALIZOVAŤ TABUĽKU môžete použiť na opätovné využitie nevyužitého priestoru a usporiadanie fragmentov dátových súborov. [Keď je z vašej knižnice vymazané veľké množstvo dát, môžete zistiť, že veľkosť dátového súboru sa nezmenšila. Je to spôsobené fragmentáciou, ktorá zostane v dátovom súbore po operácii vymazania.


Vo väčšine nastavení nemusíte vôbec spúšťať OPTIMALIZOVANÚ TABUĽKU. Aj keď robíte veľa aktualizácií riadkov s premenlivou dĺžkou, nemusíte ich spúšťať často, raz týždenne alebo raz za mesiac, len pre konkrétne tabuľky.

OPTIMALIZOVAŤ TABUĽKU funguje iba pre tabuľky MyISAM, BDB a InnoDB.

Pre BDB tabuľky je OPTIMALIZOVANÁ TABUĽKA momentálne mapovaná na ANALYZOVAŤ TABUĽKU. Pre tabuľky InnoDB je OPTIMALIZOVANÁ TABUĽKA mapovaná na ALTER TABUĽKU, ktorá tabuľku znovu vybuduje. Operácie obnovy aktualizujú štatistiky indexov a uvoľňujú nevyužitý priestor v zhlukovaných indexoch.

Poznámka: MySQL uzamkne tabuľku počas spustenia OPTIMALIZOVANEJ TABUĽKY.

Pre myisam môžete priamo použiť optimalizovanú tabuľku table.name,Keď ide o engine InnoDB, zobrazí sa "Tabuľka nepodporuje optimalizáciu, robí recreate + analyze namiesto toho", a za normálnych okolností, ak konvertujete z myisam na innodb, použijete alter table table.name engine='innodb' na konverziu, ktorú môžete použiť aj na optimalizáciu.Preto, keď ide o engine InnoDB, môžeme namiesto optimalizácie použiť alter table table.name engine='innodb'

Na zobrazenie pred a po efektoch môžete použiť príkaz zobraziť stav tabuľky, napríklad zobraziť stav tabuľky z [databázy] ako '[table_name]'; data_free vo výsledku návratu je úložný priestor zabratý prázdnym miestom.

Shell skript, ktorý implementuje MySQL časovanú opravu dávkových kontrolných tabuliek a optimalizáciu tabuľky optimalizácie tabuliek, je nasledovný:

Originál:

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Použite nástroj SQLMAP na infiltráciu, testovanie SQL injekcií
Budúci:Inštalačný tutoriál Consul v testovacom prostredí Windows
 Prenajímateľ| Zverejnené 6. 7. 2023 18:54:17 |
--Kontrolný zoznam


-- Oprav stôl


-- Optimalizujte tabuľku


Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com