Dans PHPMyAdmin, vous pouvez voir l'utilisation de l'espace en cliquant simplement sur le tableau.
AR.
Les réponses à cette question m'ont aidé à trouver ma solution. Une recherche approfondie d'un outil qui pourrait m'aider sans exécuter la même requête à chaque fois pour obtenir les données m'a fait passer par MONyog , MySQL Enterprise Monitor , Percona toolkit . Tous donnent des détails sur les informations du disque, mais ont finalement opté pour MONyog pour de meilleurs graphiques graphiques et une interface graphique facile.
Mathew
Réponses:
285
Pour une table, mydb.mytableexécutez ceci pour:
BYTES
SELECT(data_length+index_length) tablesize
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
KILOBYTES
SELECT(data_length+index_length)/power(1024,1) tablesize_kb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
MEGABYTES
SELECT(data_length+index_length)/power(1024,2) tablesize_mb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GIGABYTES
SELECT(data_length+index_length)/power(1024,3) tablesize_gb
FROM information_schema.tables
WHERE table_schema='mydb'and table_name='mytable';
GÉNÉRIQUE
Voici une requête générique où l'affichage de l'unité maximum est TB (TeraBytes)
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;pour obtenir une liste de toutes les tables de mydbavec nom et taille, classées par taille.
kqw
1
Ajoutez «DESC» à la clause ORDER BY pour voir d'abord les tables qui consomment plus d'espace disque. ;)
mvsagar
Pour être précis, vous pouvez appeler les unités ki bi octets (KiB), me bi octets (MiB) et gi bi octets (Gio) lorsque vous utilisez des préfixes binaires (multiplication avec la puissance de 2). Ou, vous pouvez utiliser des préfixes décimaux (multiplication avec la puissance de 1000), puis appeler les unités ki lo octets (Ko), me ga octets (Mo) et gi ga octets (Go). Voir plus: en.wikipedia.org/wiki/Binary_prefix
Márton Tamás
Est-ce que quelqu'un sait comment faire de même dans MSSQL?
La question est de savoir comment mesurer l'espace occupé par une table particulière .
Flimm
@ShariqueAbdullah cela fonctionnera si vous utilisez innodb_file_per_table, qui n'est pas par défaut, mais je pense que c'est très courant et / ou recommandé (quelqu'un peut facilement me prouver le contraire, juste mon impression).
Seaux
@Seaux, peut-être, mais je ne l'ai pas trouvé utilisé dans les configurations de serveur recommandées que j'ai traversées. Vous avez peut-être raison, mais comme ce n'est pas la valeur par défaut, il se peut qu'il ne le trouve pas. De plus, je pense qu'innodb fonctionne très différemment de MyISAM. Donc, même si vous avez la taille du fichier, il se peut qu'elle ne soit pas aussi précise qu'elle le serait dans le cas de MyISAM. Mais vous avez raison, cela peut être une solution. Personnellement, je préfère utiliser les commandes MySQL pour obtenir ces informations plutôt que de mesurer la taille des fichiers.
Sharique Abdullah
2
Sur la base de la réponse de RolandMySQLDBA, je pense que nous pouvons utiliser ce qui précède pour obtenir la taille de chaque schéma dans une table:
SELECT table_schema, SUM((data_length+index_length)/power(1024,1)) tablesize_kb
FROM information_schema.tables GROUPBY table_schema;
Vous pourriez peut-être regarder la taille des fichiers ...
Chaque table est stockée dans quelques fichiers séparés dans un dossier qui porte le nom que vous avez appelé votre base de données. Ces dossiers sont stockés dans le répertoire de données mysql.
De là, vous pouvez faire un 'du -sh. *' Pour obtenir la taille de la table sur le disque.
Vous pouvez vérifier la taille de la table MySQL soit en regardant phpMyAdmindans votre panneau de contrôle en cliquant sur le nom de la base de données dans le cadre de gauche et en lisant la taille des tables dans le cadre de droite.
La requête ci-dessous aidera également à obtenir les mêmes informations dans bytes
select SUM(data_length)+ SUM(index_length)as total_size
from information_schema.tables
where table_schema ='db_name'and table_name='table_name';
Réponses:
Pour une table,
mydb.mytable
exécutez ceci pour:BYTES
KILOBYTES
MEGABYTES
GIGABYTES
GÉNÉRIQUE
Voici une requête générique où l'affichage de l'unité maximum est TB (TeraBytes)
Essaie !!!
la source
SELECT (data_length+index_length)/power(1024,2) tablesize_mb, table_name FROM information_schema.tables WHERE table_schema='mydb' order by tablesize_mb;
pour obtenir une liste de toutes les tables demydb
avec nom et taille, classées par taille.Petit peu de SQL pour obtenir les 20 plus grandes tables en Mo.
J'espère que c'est utile à quelqu'un!
la source
Ce ne sera pas exact pour les tables InnoDB. La taille sur le disque est en fait plus grande que celle signalée via une requête.
Veuillez consulter ce lien de Percona pour plus d'informations.
https://www.percona.com/blog/2008/12/16/how-much-space-does-empty-innodb-table-take/
la source
Sous Linux avec mysql installé par défaut:
basé sur l' emplacement de la base de données mysql de NIXCRAFT
la source
Sur la base de la réponse de RolandMySQLDBA, je pense que nous pouvons utiliser ce qui précède pour obtenir la taille de chaque schéma dans une table:
Vraiment aimé!
la source
Vous pourriez peut-être regarder la taille des fichiers ...
Chaque table est stockée dans quelques fichiers séparés dans un dossier qui porte le nom que vous avez appelé votre base de données. Ces dossiers sont stockés dans le répertoire de données mysql.
De là, vous pouvez faire un 'du -sh. *' Pour obtenir la taille de la table sur le disque.
la source
Tiré de Comment vérifier l'espace disque utilisé par ma base de données?
La requête ci-dessous aidera également à obtenir les mêmes informations dans
bytes
la source
J'utiliserais simplement l'outil ' mysqldiskusage ' comme suit
la source