如何在SQL Alchemy中获取数据库大小?

时间:2019-06-25 20:15:49

标签: python sqlalchemy

我正在寻找一种使用SQL Alchemy获取数据库大小的方法。理想情况下,将与使用哪种基础数据库类型无关。这可能吗?

编辑: 按大小,我指的是数据库使用的字节总数。

2 个答案:

答案 0 :(得分:0)

我要做的是找出是否可以运行SQL查询来获取答案。然后,您可以通过SQLAlchemy运行此查询并获取结果。

答案 1 :(得分:0)

当前,SQLAlchemy不提供任何便利功能来确定表大小(以字节为单位)。但是您可以执行一条SQL语句。请注意,您必须使用特定于您的SQL类型的语句(MySQL,Postgres等)

选中此answer,对于MySQL,您可以手动执行以下语句:

from sqlalchemy import create_engine

connection_string = 'mysql+pymysql://...'
engine = create_engine(connection_string)
statement = 'SELECT table_schema, table_name, data_length, index_length FROM information_schema.tables'
with engine.connect() as con:
     res = con.execute(statement)
     size_of_table = res.fetchall()

对于SQLite,您可以仅使用os模块检查整个数据库的大小:

import os

os.path.getsize('sqlite.db')