我有一个约有35,000,000行的表,使用flask-admin显示表的列表视图花了15秒钟以上,如何提高它的速度?
答案 0 :(得分:0)
如果您使用的是Postgresql,则可以使用pg_class
表覆盖flask-admin count函数,该函数可以非常快速地返回表的近似计数
count = self.session.execute(
"""
SELECT reltuples::bigint AS count
FROM pg_class
WHERE oid = '{0}'::regclass
""".format(self.model.__table__.fullname)
).scalar()
答案 1 :(得分:0)
基于Zaytsev Dmitry for Postgres的先前答案进行更新,并带有Flask-Admin V 1.5.3和Python 3。
在app/admin.py
class ExampleView(ModelView):
"""
your custom code
"""
def get_count_query(self):
return self.session.execute(
f"""
SELECT reltuples::bigint AS count
FROM pg_class
WHERE oid =
'{self.model.__table__.fullname}'::regclass
"""
)