Skip to content

Archives

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Categories

  • Geen categorieën
Trend RepositoryArticles and guides
Articles

How to Get the Size of a Table in MySQL

On december 17, 2021 by admin

Zoals de meeste relationele databases, levert MySQL nuttige metadata over de database zelf. Terwijl de meeste andere databases naar deze informatie verwijzen als een catalog, verwijst de officiële MySQL documentatie naar de INFORMATION_SCHEMA metadata als tables.

Of de naam, waar het om gaat is de informatie die door deze INFORMATION_SCHEMA tabellen wordt verstrekt. Alles van views en user_privilieges tot columns en tables kan worden gevonden in de INFORMATION_SCHEMA. Voor onze doeleinden zijn we vooral geïnteresseerd in de tables metadata, die we kunnen opvragen om daadwerkelijk de grootte van verschillende tabellen in het systeem te extraheren.

List Table Sizes From a Single Database

Zoals te zien is in de officiële documentatie, bevat de INFORMATION_SCHEMA.TABLES tabel ongeveer 20 kolommen, maar voor het doel van het bepalen van de hoeveelheid schijfruimte die wordt gebruikt door tabellen, zullen we ons richten op twee kolommen in het bijzonder: DATA_LENGTH en INDEX_LENGTH.

  • DATA_LENGTH is de lengte (of grootte) van alle gegevens in de tabel (in bytes).
  • INDEX_LENGTH is de lengte (of grootte) van het indexbestand voor de tabel (ook in bytes).

Wapend met deze informatie, kunnen we een query uitvoeren die alle tabellen in een specifieke database zal opsommen, samen met de schijfruimte (grootte) van elk. We kunnen zelfs een beetje chiquer worden en de normale groottewaarden uit bytes omzetten in iets bruikbaarders en begrijpelijkers voor de meeste mensen, zoals 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;

In dit voorbeeld met de bookstore database, combineren we de DATA_LENGTH en INDEX_LENGTH als bytes, dan delen we het twee keer door 1024 om het om te zetten in kilobytes en dan megabytes. Onze resultatenverzameling ziet er dan ongeveer zo uit:

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

Als u niet geïnteresseerd bent in alle tabellen in de database en alleen de grootte van een bepaalde tabel wilt, kunt u eenvoudig AND TABLE_NAME = "your_table_name" toevoegen aan de WHERE-clausule. Hier willen we alleen informatie over de book tabel:

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;

De resultaten zijn, zoals verwacht, nu:

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

List All Table Sizes From ALL Databases

Als u tegen een probleem aanloopt waarbij uw database steeds groter wordt, maar u niet weet welke tabel de boosdoener is, kan het nuttig zijn om de grootte van alle tabellen in alle databases in het hele systeem op te vragen. Dit kan eenvoudig worden gedaan met de volgende query:

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;

Hiermee krijgt u niet alleen de grootte van de tabel te zien, maar ook de tabelnaam en de bovenliggende database waaraan de tabel is gekoppeld.

Geef een antwoord Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Archieven

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • 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