See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 3517|Vastuse: 1

[Nõuanded] [Ülekanne] MySQL Advanced'i: optimeeri tabelikäsk

[Kopeeri link]
Postitatud 17.06.2023 11:40:34 | | |
Mysql-i kasutades võid avastada, et kuigi tabel kustutab palju andmeid, on tabeli andmefailid ja indeksifailid kummaliselt väikesed. See on tingitud sellest, et mysql jätab andmete kustutamisel palju andmeauke (eriti tekst ja BLOB), mis hõivavad originaalandmete ruumi, nii et faili suurus ei muutu. Neid auke võidakse tulevikus uuesti kasutada, kui andmeid lisatakse, ja loomulikult võivad need jääda sinna. See auk suurendab mitte ainult salvestuskulusid, vaid vähendab ka tabeli skaneerimisefektiivsust andmete killustumise tõttu.

Kasutusstsenaariumid:Kui oled suure osa tabelist kustutanud või teinud palju muudatusi tabelis, millel on muutuva pikkusega read (näiteks VARCHAR, BLOB või TEXT veergud), peaksid kasutama OPTIMIZE TABLE'i. Kustutatud kirjed hoitakse lingitud nimekirjas ning järgnevad INSERT-operatsioonid taaskasutavad vana kirje asukohta. Saad kasutada OPTIMIZE TABLE'i, et taaskasutada kasutamata ruumi ja organiseerida andmefailide fragmente. [Kui suur hulk andmeid kustutatakse teie teegist, võite avastada, et andmefaili suurus ei ole vähenenud. See tuleneb killustumisest, mis jäi andmefaili pärast kustutamisoperatsiooni.


Enamikes seadetes ei pea sa üldse OPTIMIZE TABLE käivitama. Isegi kui teed palju muutuva pikkusega ridade uuendusi, ei pea neid tihti jooksutama, kord nädalas või kord kuus, ainult konkreetsete tabelite jaoks.

OPTIMIZE TABLE töötab ainult MyISAM, BDB ja InnoDB tabelite jaoks.

BDB tabelite puhul on OPTIMIZE TABEL hetkel kaardistatud ANALYZE TABELIGA. InnoDB tabelite puhul on OPTIMIZE TABLE kaardistatud ALTER TABLE'iga, mis ehitab tabeli uuesti. Taasehitatavad operatsioonid, uuendavad indeksistatistikat ja vabastavad kasutamata ruumi klasterindeksites.

Märkus: MySQL lukustab tabeli OPTIMIZE TABLE käivitamise ajal.

Myisami jaoks saad otse kasutada optimeerimistabelit table.name,Kui tegemist on InnoDB mootoriga, teatab ta "Tabel ei toeta optimeerimist, tee recreate + analyze asemel "ja tavapärastes tingimustes, kui konverteerid myisamist innodb-iks, kasutad alter table table.name engine='innodb' konverteerimiseks ning seda saab kasutada ka optimeerimiseks.Seega, kui tegemist on InnoDB mootoriga, saame kasutada alter table table.name engine='innodb' optimeerimise asemel

Enne ja pärast efektide vaatamiseks saad kasutada käsku näidata tabeli olekut, näiteks näita tabeli olekut [andmebaasist] näiteks '[table_name]'; Tagastustulemuse data_free on tühjuse hõivatud salvestusruum.

Shell-skript, mis rakendab MySQL-i ajastatud partii kontrolltabeli parandamist ja optimeerimist tabeli optimeerimise tabelit, on järgmine:

Originaal:

Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.




Eelmine:Kasuta SQLMAP infiltratsioonitööriista SQL süstimise testimist
Järgmine:Consul'i paigaldusjuhend Windowsi testkeskkonnas
 Üürileandja| Postitatud 06.07.2023 18:54:17 |
--Kontrollnimekirja


-- Paranda tabel


-- Optimeeri tabel


Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com