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.
