Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3517|Atsakyti: 1

[Patarimai] [Perkelti] į MySQL Advanced: optimizuoti lentelės komandą

[Kopijuoti nuorodą]
Paskelbta 2023-06-17 11:40:34 | | |
Kai naudojate mysql, galite pastebėti, kad nors lentelė ištrina daug duomenų, lentelės duomenų failai ir indekso failai yra keistai maži. Taip yra todėl, kad mysql ištrindamas duomenis (ypač tekstą ir BLOB) paliks daug duomenų skylių, kurios užims pradinių duomenų vietą, todėl failo dydis nesikeičia. Šios skylės gali būti pakartotinai panaudotos ateityje, kai bus įterpti duomenys, ir, žinoma, jos gali ten likti. Ši skylė ne tik padidina saugojimo išlaidas, bet ir sumažina lentelės nuskaitymo efektyvumą dėl duomenų fragmentacijos.

Naudojimo scenarijai:Jei panaikinote didelę lentelės dalį arba atlikote daug keitimų lentelėje su kintamo ilgio eilutėmis (viena su stulpeliais VARCHAR, BLOB arba TEXT), turėtumėte naudoti OPTIMIZE TABLE. Panaikinti įrašai saugomi susietame sąraše, o vėlesnės INSERT operacijos pakartotinai naudoja seną įrašo vietą. Galite naudoti OPTIMIZE TABLE, kad panaudotumėte nepanaudotą vietą ir tvarkytumėte duomenų failų fragmentus. [Kai iš bibliotekos ištrinamas didelis duomenų kiekis, galite pastebėti, kad duomenų failo dydis nesumažėjo. Taip yra dėl duomenų failo fragmentacijos po ištrynimo operacijos.


Daugelyje nustatymų jums visai nereikia paleisti OPTIMIZE TABLE. Net jei daug atnaujinate kintamo ilgio eilutes, nereikia jų vykdyti dažnai, kartą per savaitę ar kartą per mėnesį, tik konkrečioms lentelėms.

OPTIMIZE TABLE veikia tik MyISAM, BDB ir InnoDB lentelėse.

BDB lentelėse OPTIMIZE TABLE šiuo metu susieta su ANALYZE TABLE. InnoDB lentelėse OPTIMIZE TABLE susiejama su ALTER TABLE, kuri atkuria lentelę. Atkūrimo operacijos atnaujina indekso statistiką ir atlaisvina nepanaudotą vietą sugrupuotuose indeksuose.

Pastaba: MySQL užrakina lentelę OPTIMIZE TABLE vykdymo metu.

"Myisam" galite tiesiogiai naudoti optimizavimo lentelę table.name,Kai tai yra InnoDB variklis, jis praneš "Lentelė nepalaiko optimizavimo, vietoj to daro perkurti + analizuoti", o įprastomis aplinkybėmis, jei konvertuojate iš myisam į innodb, konvertavimui naudosite alter table table.name engine='innodb', taip pat galite tai naudoti optimizavimui.Todėl, kai tai yra InnoDB variklis, galime naudoti alter table table.name engine='innodb', o ne optimizuoti optimizavimui

Norėdami peržiūrėti efektus prieš ir po, galite naudoti komandą rodyti lentelės būseną, pvz., rodyti lentelės būseną iš [duomenų bazės], pvz., "[table_name]"; Grąžinimo rezultato data_free yra tuštumos užimta saugojimo vieta.

Apvalkalo scenarijus, įgyvendinantis MySQL laiko paketinio tikrinimo lentelės taisymą ir optimizuoti lentelės optimizavimo lentelę, yra toks:

Originalus:

Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.




Ankstesnis:Naudokite SQLMAP įsiskverbimo įrankį SQL injekcijos testavimas
Kitą:Konsulo diegimo pamoka "Windows" bandomojoje aplinkoje
 Savininkas| Paskelbta 2023-07-06 18:54:17 |
--Kontrolinis sąrašas


-- Pataisykite stalą


-- Optimizuoti lentelę


Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com