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:

"""Calculo del tamanio total aproximado de un esquema de base de datos de MySQL"""

import MySQLdb
import getpass

def main():
    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()

if __name__ == '__main__':
    main()

Vía: Programming Practices