Una forma muy elemental, pero muy práctica, de calcular el tamaño de una base de datos MySQL es haciendo la suma de los tamaños de los espacios de datos e índices de cada tabla, a partir del resultado de un SHOW TABLE STATUS.
El código para hacer dicho cálculo es realmente sencillo:
import MySQLdb def main():
if __name__ == '__main__':
import getpass
db_host = raw_input('Host.......: ')
schema_name = raw_input('Esquema....: ')
user_name = raw_input('Usuario....: ')
password = getpass.getpass('Pass.......: ')
db_conn = MySQLdb.connect(host=db_host, user=user_name,passwd=password, db=schema_name)
db_cursor = db_conn.cursor(MySQLdb.cursors.DictCursor)
db_cursor.execute('show table status')
rows = db_cursor.fetchall()
total_size = 0
for row in rows:
data_length = row['Data_length']
if data_length is None:
data_length = 0
index_length = row['Index_length']
if index_length is None:
index_length = 0
total_size = total_size + data_length + index_length
print '------------------------'
print 'Tamanio Total: %s KB.' % str(total_size / 1024)
db_conn.close()
main()
Comentarios: