Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 3517|Antwoord: 1

[Tips] [Transfer] naar MySQL Advanced: tabel optimaliseren commando

[Link kopiëren]
Geplaatst op 17-06-2023 11:40:34 | | |
Bij het gebruik van MySQL kun je merken dat hoewel een tabel veel data verwijdert, de databestanden en indexbestanden van de tabel vreemd klein zijn. Dit komt doordat mysql veel datagaten achterlaat bij het verwijderen van data (vooral Text en BLOB), wat de ruimte van de originele data inneemt, waardoor de bestandsgrootte niet verandert. Deze gaten kunnen in de toekomst opnieuw worden gebruikt wanneer data wordt ingevoegd, en natuurlijk kunnen ze daar blijven. Dit gat verhoogt niet alleen de opslagkosten, maar vermindert ook de scanefficiëntie van de tabel door datafragmentatie.

Gebruiksscenario's:Als je een groot deel van de tabel hebt verwijderd, of als je veel wijzigingen hebt aangebracht in een tabel met rijen van variabele lengte (één met kolommen VARCHAR, BLOB of TEXT), moet je OPTIMIZE TABLE gebruiken. Verwijderde records worden bewaard in de gekoppelde lijst, en daaropvolgende INSERT-bewerkingen hergebruiken de oude recordlocatie. Je kunt OPTIMIZE TABLE gebruiken om ongebruikte ruimte te hergebruiken en fragmenten van databestanden te organiseren. [Wanneer een grote hoeveelheid data uit je bibliotheek wordt verwijderd, kun je merken dat de bestandsgrootte niet is afgenomen. Dit komt door de fragmentatie die na de verwijderingsoperatie in het databestand achterblijft.


In de meeste instellingen hoef je OPTIMIZE TABLE helemaal niet te draaien. Zelfs als je veel updates doet aan rijen van variabele lengte, hoef je ze niet vaak uit te voeren, één keer per week of eens per maand, alleen voor specifieke tabellen.

OPTIMIZE TABLE werkt alleen voor MyISAM-, BDB- en InnoDB-tabellen.

Voor BDB-tabellen is de OPTIMIZE TABLE momenteel gekoppeld aan de ANALYZE TABLE. Voor InnoDB-tabellen wordt de OPTIMIZE TABLE toegewezen aan de ALTER TABLE, die de tabel opnieuw opbouwt. Bouw operaties opnieuw op, update indexstatistieken en maak ongebruikte ruimte vrij in geclusterde indexen.

Opmerking: MySQL vergrendelt de tabel tijdens de OPTIMIZE TABLE-uitvoering.

Voor myisam kun je direct de optimaliseer-tabel table.name gebruiken,Wanneer het de InnoDB-engine is, zal deze rapporteren "Table doesndoes not for optimize, recreate + analyze in plaats daarvan", en onder normale omstandigheden, als je converteert van myisam naar innodb, gebruik je alter table table.name engine = 'innodb' om te converteren, en je kunt dit ook gebruiken voor optimalisatie.Daarom kunnen we, wanneer het de InnoDB-engine is, 'alter table' table.name engine='innodb' gebruiken in plaats van optimaliseren voor optimalisatie

Om de voor- en na-effecten te bekijken, kun je het commando 'toon tabel status' gebruiken, zoals 'toon tabel status tonen uit [database] zoals '[table_name]'; De data_free in het retourresultaat is de opslagruimte die door de leegte wordt ingenomen.

Het shellscript dat MySQL Timed batch check table repair en de tabel optimaliseert implementeert is als volgt:

Origineel:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.




Vorig:Gebruik de SQLMAP-infiltratietool voor SQL-injectietesten
Volgend:Consul-installatietutorial in een Windows-testomgeving
 Huisbaas| Geplaatst op 06-07-2023 18:54:17 |
--Controlelijst


-- Zet de tafel vast


-- Optimaliseer de tabel


Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com