Rešeno: dobijte veličinu stola

Posljednje ažuriranje: 09/14/2023

U upravljanju bazama podataka, ključno je razumjeti veličinu vaše tablice za efektivno skladištenje i optimizaciju performansi. SQL, ili jezik strukturiranih upita, je moćan alat za rukovanje podacima pohranjenim u sustavu za upravljanje relacijskim bazama podataka (RDBMS) ili za obradu toka u sustavu upravljanja relacijskim tokovima podataka (RDSMS). Uključuje niz funkcija i naredbi koje omogućavaju korisnicima da kreiraju, modificiraju i upravljaju bazama podataka. U ovom članku ulazimo u SQL naredbe koje su bitne za određivanje veličine tablice.

Dohvaćanje veličine tabele

Poznavanje veličine vaše tablice je od suštinskog značaja za upravljanje pohranom i performansama upita. SQL nam pruža nekoliko načina da dobijemo ove informacije.

SELECT 
    table_name AS `Table`, 
    round(((data_length + index_length) / 1024 / 1024), 2) as `Size in MB` 
FROM information_schema.TABLES 
WHERE table_schema = "your_database_name"
ORDER BY (data_length + index_length) DESC;

Ova SQL naredba dohvaća veličine svih tablica u vašoj bazi podataka. Koristi prikaz `information_schema.tables` da dobije `data_length` (dužina podataka u tabeli) i `index_length` (dužina indeksa tabele). Ove informacije se zatim zbrajaju i pretvaraju u MB (Megabajte) radi lakšeg razumijevanja.

Detaljan pogled na kodeks

Hajde da pogledamo korak po korak šta radi svaki red SQL naredbe.

table_name AS `Table`

Ova linija preimenuje `table_name` u `Table`.

round(((data_length + index_length) / 1024 / 1024), 2) as `Size in MB`

Ova posebna linija koda zbraja dužinu podataka i dužinu indeksa kako bi se vratila ukupna memorija koju koristi tabela. Zatim ovo pretvara iz bajtova u megabajte sa argovima `/1024 /1024`. Funkcija `round` se koristi za zaokruživanje rezultirajućeg broja na dvije decimale.

FROM information_schema.TABLES 

Klauzula `FROM` navodi `information_schema.tables` kao izvor podataka.

WHERE table_schema = "your_database_name"

Klauzula `WHERE` filtrira podatke tako da uključuje samo tablice iz određenog imena baze podataka.

ORDER BY (data_length + index_length) DESC;

Konačno, klauzula `ORDER BY` sortira rezultat u opadajućem redoslijedu ukupne korištene memorije.

Informacije_Shema

`information_schema` je posebna shema koja sadrži metapodatke cijele baze podataka. Ovo uključuje naziv baze podataka, naziv tabela, tipove podataka kolona i još mnogo toga. U suštini, to je baza podataka vaše baze podataka.

Važnost veličine tabele za praćenje

Praćenje veličine tabela je ključno za osiguranje ispravnog rada vaših baza podataka. Pomaže u podešavanju performansi, planiranju kapaciteta i dizajnu baza podataka. Pomoću njega možete identificirati tabele koje je potrebno smanjiti, podijeliti ili arhivirati, te na taj način održati optimalne performanse vaših baza podataka. Poznavanje veličina također može pomoći u upravljanju troškovima, jer možete planirati dostupne resurse za pohranu.

Imajte na umu da

  • Trebali biste zamijeniti 'your_database_name' u SQL izrazu s vašim stvarnim imenom baze podataka.
  • Gore navedene SQL naredbe bi trebale ispravno raditi u MySQL/MariaDB bazama podataka.

U slučaju da koristite različite RDBMS, možda ćete morati da prilagodite komande u skladu sa tim da se pridržavaju SQL dijalekta vašeg sistema.

Slični postovi: