Skip to content

Archives

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Categories

  • Ei kategorioita
Trend RepositoryArticles and guides
Articles

How to Get the Size of a Table in MySQL

On 17 joulukuun, 2021 by admin

Kuten useimmat relaatiotietokannat, MySQL tarjoaa hyödyllisiä metatietoja tietokannasta itsestään. Kun useimmat muut tietokannat viittaavat näihin tietoihin nimellä catalog, MySQL:n virallisessa dokumentaatiossa INFORMATION_SCHEMA-metatietoihin viitataan nimellä tables.

Nimestä riippumatta tärkeintä on näiden INFORMATION_SCHEMA-taulujen tarjoama tieto. Kaikki views:stä ja user_privilieges:sta columns:een ja tables:een löytyy INFORMATION_SCHEMA:sta. Meidän tarkoituksiamme varten olemme erityisen kiinnostuneita tables-metatiedoista, joita voimme kysyä, jotta voimme itse asiassa poimia järjestelmän eri taulujen koon.

List Table Sizes From a Single Database

Kuten virallisesta dokumentaatiosta käy ilmi, INFORMATION_SCHEMA.TABLES-taulu sisältää noin 20 saraketta, mutta taulukoiden käyttämän levytilan määrän määrittämiseksi keskitymme erityisesti kahteen sarakkeeseen: DATA_LENGTH ja INDEX_LENGTH.

  • DATA_LENGTH on taulun kaikkien tietojen pituus (tai koko) (yksikössä bytes).
  • INDEX_LENGTH on taulun indeksitiedoston pituus (tai koko) (niin ikään yksikössä bytes).

Näillä tiedoilla varustautuneena voimme suorittaa kyselyn, jossa luetellaan kaikki tietyn tietokannan taulukot sekä kunkin taulukon levytila (koko). Voimme jopa mennä hieman hienostuneemmiksi ja muuntaa normaalit kokoarvot bytes:sta joksikin hyödyllisemmäksi ja ymmärrettävämmäksi useimmille ihmisille, kuten megabytes.

SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESWHERE TABLE_SCHEMA = "bookstore"ORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Tässä esimerkissä, jossa käytämme bookstore-tietokantaa, yhdistämme DATA_LENGTH:n ja INDEX_LENGTH:n arvot bytes:ksi, ja jaamme ne sitten kahdesti 1024:llä, jotta ne voidaan muuntaa kilobytes:ksi ja sen jälkeen vielä megabytes:ksi. Tulosjoukkomme näyttää jotakuinkin tältä:

+----------------------------------+-----------+| Table | Size (MB) |+----------------------------------+-----------+| book | 267 || author | 39 || post | 27 || cache | 24 |...

Jos et välitä tietokannan kaikista taulukoista ja haluat vain tietyn taulukon koon, voit yksinkertaisesti lisätä AND TABLE_NAME = "your_table_name" WHERE-lausekkeeseen. Tässä halutaan tietoja vain book-taulusta:

SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESWHERE TABLE_SCHEMA = "bookstore" AND TABLE_NAME = "book"ORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Tulokset ovat nyt odotetusti seuraavat:

+-------+-----------+| Table | Size (MB) |+-------+-----------+| book | 267 |+-------+-----------+1 row in set (0.00 sec)

Lista kaikkien taulukoiden koot KAIKISTA tietokannoista

Jos olet törmännyt ongelmaan, jossa tietokantasi koko kasvaa, mutta et tiedä, mikä taulukko on syyllinen, voi olla hyödyllistä kysyä koko järjestelmän kaikkien tietokantojen kaikkien taulukoiden kokoa. Tämä onnistuu helposti seuraavalla kyselyllä:

SELECT TABLE_SCHEMA AS `Database`, TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`FROM information_schema.TABLESORDER BY (DATA_LENGTH + INDEX_LENGTH)DESC;

Tämä palauttaa taulun koon lisäksi myös taulun nimen ja emotietokannan, johon se liittyy.

Vastaa Peruuta vastaus

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Arkistot

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Meta

  • Kirjaudu sisään
  • Sisältösyöte
  • Kommenttisyöte
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress