#!/bin/bash #------------------------------------------------------------------------------# # # Zeigt die Größe jeder einzelnen Tabelle einer Datenbank an. # getestet mit MySQL Version 8.0.31 # #------------------------------------------------------------------------------# if [ "x${1}" = x ] ; then echo "${0} [Datenbankname]" echo "${0} simsysnetwork" echo "${0} simsysnetwork -N" exit 1 fi if [ "x${2}" = "x-N" ] ; then OPT="-N" SQL="SELECT sum( data_length + index_length ) / 1024 / 1024 'Gesamtgroesse in MB', data_length / 1024 / 1024 'Daten in MB', index_length / 1024 / 1024 'Index in MB', table_schema 'Datenbank', table_name 'Tabelle' FROM information_schema.tables WHERE table_schema='${1}' AND" else OPT="-t" SQL="SELECT table_schema 'Datenbank', table_name 'Tabelle', sum( data_length + index_length ) / 1024 / 1024 'Gesamtgroesse in MB', data_length / 1024 / 1024 'Daten in MB', index_length / 1024 / 1024 'Index in MB' FROM information_schema.tables WHERE table_schema='${1}' AND" fi for TAB in $(echo "SHOW TABLES;" | mysql -N ${1}) do echo "${SQL} table_name='${TAB}';" | mysql ${OPT} done