Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3517|Svar: 1

[Tips] [Overfør] til MySQL Avanceret: optimer tabel-kommandoen

[Kopier link]
Opslået på 17/06/2023 11.40.34 | | |
Når du bruger MySQL, kan du opleve, at selvom en tabel sletter en masse data, er datafilerne og indeksfilerne i tabellen mærkeligt små. Dette skyldes, at mysql efterlader mange datahuller, når data slettes (især Text og BLOB), hvilket vil optage pladsen i de oprindelige data, så filstørrelsen ændrer sig ikke. Disse huller kan genbruges i fremtiden, når data indsættes, og selvfølgelig kan de forblive der. Dette hul øger ikke kun lageromkostningerne, men reducerer også scanningseffektiviteten af tabellen på grund af datafragmentering.

Brugsscenarier:Hvis du har slettet en stor del af tabellen, eller hvis du har lavet mange ændringer i en tabel med rækker af variabel længde (en med VARCHAR-, BLOB- eller TEXT-kolonner), bør du bruge OPTIMIZE TABLE. Slettede poster gemmes i den linkede liste, og efterfølgende INSERT-operationer genbruger den gamle postplacering. Du kan bruge OPTIMIZE TABLE til at omdanne ubrugt plads og organisere fragmenter af datafiler. [Når en stor mængde data slettes fra dit bibliotek, kan du opleve, at datafilstørrelsen ikke er faldet. Dette skyldes fragmenteringen, der er tilbage i datafilen efter sletningsoperationen.


I de fleste indstillinger behøver du slet ikke køre OPTIMIZE TABLE. Selv hvis du laver mange opdateringer af rækker med variabel længde, behøver du ikke køre dem ofte, en gang om ugen eller en gang om måneden, kun for specifikke tabeller.

OPTIMIZE TABLE virker kun for MyISAM-, BDB- og InnoDB-tabeller.

For BDB-tabeller er OPTIMIZE TABLE i øjeblikket kortlagt til ANALYZE TABLE. For InnoDB-tabeller mappes OPTIMIZE TABLE til ALTER TABLE, som genopbygger tabellen. Genopbygningsoperationer, opdaterer indeksstatistikker og frigør ubrugt plads i klyngede indekser.

Bemærk: MySQL låser tabellen under OPTIMIZE TABLE-kørslen.

For myisam kan du direkte bruge optimeringstabellen table.name,Når det er InnoDB-motoren, vil den rapportere "Table doesn't support optimize, men laver recreate + analyze i stedet", og under normale omstændigheder, hvis du konverterer fra myisam til innodb, bruger du alter table table.name engine='innodb' til at konvertere, og du kan også bruge dette til optimering.Derfor, når det er InnoDB-motoren, kan vi bruge alter table table.name engine='innodb' i stedet for at optimere for optimering

For at se før- og efter-effekterne kan du bruge kommandoen vis tabel status, såsom vis tabelstatus fra [database] som '[table_name]'; Den data_free i returresultatet er det opbevaringsrum, som tomrummet optager.

Shell-scriptet, der implementerer MySQL timed batch check table repair og optimerer table optimize-tabellen, er som følger:

Oprindelig:

Hyperlink-login er synlig.
Hyperlink-login er synlig.




Tidligere:Brug SQLMAP-infiltrationsværktøjet SQL injektionstest
Næste:Consul-installationsvejledning i et Windows testmiljø
 Udlejer| Opslået på 06/07/2023 18.54.17 |
--Tjekliste


-- Fix bordet


-- Optimer tabellen


Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com