Hur kan jag minska storleken på en MySQL-databas?
databasprogramvara, som MySQL, använder ofta olika tekniker för att påskynda sökningen och leveransen av all information som begärs. I de flesta fall har dessa tekniker formen av tillfälliga databaser som skapas för att fungera som mellanprodukter och hjälper dig att hämta de begärda uppgifterna snabbare. Den enda nackdelen med dessa ytterligare databaser är att de kommer att konsumera extra diskutrymme. I den här artikeln visar vi dig de olika sätten på vilka du kan minska din MySQL-databasstorlek.
Hur sänker jag storleken på en MySQL-databas?
det finns två breda metoder du kan ta för att minska storleken på en MySQL-databas. Du kan antingen försöka optimera databasstrukturen eller så kan du ta bort onödiga data. Nedan kommer vi att undersöka båda teknikerna mer detaljerat.
Hur fungerar optimering för en MySQL-databas?
som vi nämnde tidigare skapar MySQL-databaser ofta interna tabeller i ett försök att påskynda sökfrågor. Dessa ytterligare tabeller blir dock mindre effektiva med tiden när du lägger till nya data och ändrar befintliga poster. Som sådan är det bra att optimera din databas då och då. Inte bara kommer du att minska den totala storleken på din databas, men du kommer också sannolikt att se en prestationsökning också!
du har två alternativ när det gäller att optimera en databas på vår delade värdplattform. Du kan antingen använda vår 1-click optimizer som ingår i vår databashanterare eller så kan du gå mer praktiskt med hjälp av verktygen från phpMyAdmin.
hur optimerar jag en MySQL-databas med databashanteraren?
du kan enkelt och snabbt optimera alla tabeller i en viss MySQL-databas tack vare avsnittet databashanterare på vår kontrollpanel. Databashanteraren kommer att vara tillgänglig för dig om du använder vår gratis webbhotell, premium shared hosting eller en av våra Semi-dedikerade webbservrar. Följ dessa steg för att optimera din databas:
- gå till avsnittet databashanterare på vår kontrollpanel.
- klicka på databasnamnet som du vill optimera.
- öppna fliken hantering.
- klicka på alternativet med titeln 1-klickoptimering.
när du utför ovanstående åtgärder optimeras alla tabeller i din databas. Tänk på att vår databasanvändningsstatistik inte uppdateras i realtid, så du kanske inte märker en omedelbar skillnad i databasanvändning. För att lära dig mer om de olika funktionerna som vår databashanterare har att erbjuda, kan du gå igenom vår kompletta guide till databashanteraren.
hur optimerar jag tabellerna i en MySQL-databas med phpMyAdmin?
till skillnad från vår databashanterare som optimerar alla tabeller i ett fall, ger phpMyAdmin dig mycket mer detaljerad kontroll när det gäller vilka tabeller som ska optimeras och vilka tabeller som ska förbli oförändrade. Nedan kommer vi att undersöka två tekniker för att minska tabellstorlekar genom phpMyAdmin: alternativet Optimera samt komprimera data från tabeller som använder InnoDB-lagringsmotorn.
förutom tabelloptimering ger phpMyAdmin dig en mängd andra alternativ som du kan hitta användbara. Du kan lära dig mer om detta praktiska verktyg i vår phpMyAdmin-översikt.
hur minskar jag min tabellstorlek med funktionen Optimera i phpMyAdmin?
följ stegen nedan för att optimera tabellerna i din MySQL-databas med optimeringsfunktionen i phpMyAdmin:
- öppna avsnittet databashanterare på Kontrollpanelen.
- klicka på databasnamnet som du vill optimera.
- öppna fliken hantering.
- klicka på alternativet phpMyAdmin som visas nedan:
- phpMyAdmin öppnas nu i en ny flik och du kommer att presenteras med listan över tabeller som utgör databasen. Placera kryssrutor framför tabellerna som du vill optimera.
- när du har gjort ditt val väljer du alternativet Optimera tabell i rullgardinsmenyn. Alternativet är en del av Tabellunderhållssektionen:
- när du väl har valt kommandot optimera tabell kommer det att köras automatiskt och du bör presenteras med att din SQL-fråga har körts framgångsrikt. meddelande:
en sak att tänka på är att alternativet Optimera tabell utför olika åtgärder beroende på lagringsmotorn som dina tabeller använder. Som sådan kan alternativets effekter variera från tabell till tabell. Detta gäller särskilt om du använder olika lagringsmotorer och om några av dina tabeller genomgår regelbundna ändringar medan andra tabeller förblir relativt oförändrade.
hur komprimerar jag Data i en MySQL-databas?
som vi tidigare har noterat kommer olika lagringsmotorer med olika funktionsuppsättningar. En enastående funktion i InnoDB storage engine är dess förmåga att komprimera dina data utan förlust av information. Komprimeringen är mest effektiv om dina tabeller har kolumner som använder TEXT
, BLO
, VARCHAR
, och VARBINARY
datatyper.
för att köra komprimeringen på ett visst bord måste du först se till att tabellen i fråga använder InnoDB-lagringsmotorn. Du hittar den här informationen i phpmyadmins databasstrukturvy. Den här vyn är lättast att nå genom att klicka på ditt databasnamn som visas på skärmdumpen nedan:
när du är i strukturvyn bör du se en lista över alla tabeller som finns i din databas. Kolumnen som visar din nuvarande lagringsmotor kallas typ och markeras nedan:
om du ser InnoDB listad som lagringsmotorn på borden som du vill komprimera, är du bra att gå. Om du ser något annat värde måste du dock konvertera dina tabeller för att använda InnoDB-lagringsmotorn först. Konverteringen görs genom att utföra ett kort SQL-kommando. För att komma igång, byt till SQL-fliken i phpMyAdmin:
en gång där, klistra in följande kod:
ALTER TABLE my_table ENGINE = InnoDB;
var noga med att ersätta my_table
med namnet på tabellen som du vill konvertera. I vårt exempel konverterar vi en tabell som heter orders
, så vårt kommando skulle se ut så här:
ALTER TABLE orders ENGINE = InnoDB;
när du har angett kommandot klickar du på Go-knappen i det nedre högra hörnet för att utföra det. Om det lyckas, du bör presenteras med en framgång meddelande som den som visas nedan:
om du vill konvertera flera tabeller till InnoDB-lagringsmotorn måste du köra ovanstående kommando för var och en av dem.
nu när dina tabeller använder InnoDB kan du fortsätta med den faktiska MySQL-datakomprimeringen. Komprimeringen i sig är ett kort SQL-kommando som också måste köras från SQL-fliken i phpMyAdmin. Här är kommandot:
ALTER TABLE my_table ROW_FORMAT=COMPRESSED;
precis som med tabellkonverteringen måste du ersätta my_table
med det faktiska namnet på ditt bord. Som ett exempel, i skärmdumpen nedan komprimerar vi tabellen som heter orders
:
när du har angett komprimeringskommandot trycker du på Go-knappen för att utföra det. Om du vill komprimera flera tabeller kan du göra det genom att köra SQL-kommandot för varje tabell.
Hur tar jag bort tabeller med phpMyAdmin?
ditt andra alternativ när det gäller att frigöra lagringsutrymme är att ta bort data som du inte längre behöver från din databas. Du kan antingen ta bort enskilda poster eller hela tabeller.
för att ta bort en tabell, gå bara till fliken struktur för din databas så att du ser alla dina tabeller. Därifrån väljer du Drop-alternativet bredvid tabellen du vill ta bort och bekräfta ditt val. Dubbelkolla att du har valt rätt tabell innan du bekräftar borttagningen eftersom den här åtgärden inte kan ångras.
om det inte är ett alternativ för dig att ta bort en hel databastabell kan du överväga att ta bort enskilda poster från olika tabeller som du inte längre behöver. Detta kan uppnås genom att köra olika SQL-kommandon. Nedan visar vi ett mycket grundläggande SQL-kommando som kan ta bort en enda databaspost.
i det här exemplet använder vi ovanstående tabell med två rader. Målet är att ta bort den andra raden samtidigt som den första bevaras.
du kommer att märka att alla tabeller vanligtvis har en id-kolumn som innehåller ett unikt nummer som identifierar den angivna posten. I vårt exempel kallas ID-kolumnen faktiskt id
, men dina tabeller kan använda ett annat ord som kolumnens Titel. När du har hittat kolumnen som lagrar de unika identifierarna för varje post, anteckna värdet som är associerat med posten (rad) som du vill ta bort. Med den här informationen till hands växlar du till SQL-fliken och kör följande SQL-kommando:
DELETE FROM my_table where id_column = 'my_id';
i ovanstående kod måste du göra tre ersättare:
-
my_table
bör ersättas med namnet på tabellen som du tar bort från. -
id_column
ska ersättas med namnet på kolumnen som lagrar dina unika identifierare. -
my_id
ska ersättas med den faktiska identifieraren för den rad som du vill radera.
vårt exempel använder tabellen products
. Denna tabell har en id
kolumn och den unika identifieraren för posten som vi vill ta bort är 2
. Så vårt SQL-kommando ska se ut så här:
när vi trycker på GO-knappen körs SQL-kommandot och raderingen kommer att slutföras. Nu innehåller vårt bord inte längre den andra posten:
om du använder ett modernt innehållshanteringssystem som WordPress, Drupal, Joomla eller liknande, bör du överväga att använda CMS: s backend-administrationsverktyg för datahantering och borttagning. Att manuellt radera poster från databasen bör vara din sista utväg.
slutsats
som webbplatsägare är det alltid bra att hålla ett öga på din databasanvändning. Detta gäller särskilt om du använder en delad värdplan och du har ett tak på din databasstorlek. Om du råkar nå din lagringsgräns kan din webbplats börja visa alla slags varningar och felmeddelanden, till exempel det förvirrande meddelandet ”infoga kommando nekad till användare”.