Flask慢查询统计

Flask框架 2020-09-03 1118

在debug模式或测试模式下,Flask-SQLAlchemy会自动开启查询记录,可以配置SQLALCHEMY_RECORD_QUERIES=True来显式开启查询记录功能。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy, get_debug_queries

app = Flask(__name__)

app.config['SQLALCHEMY_RECORD_QUERIES'] = True  # 开启慢查询设置
app.config['SLOW_QUERY_THRESHOLD'] = 1 # 查询语句执行大于等于1s,就被认为是慢查询


def register_request_handlers(app2):
    @app2.after_request # 获取查询数据,必须是请求完成时 
    def query_profiler(response):
        for q in get_debug_queries():  # get_debug_queries()包含所有查询信息
            if q.duration >= app2.config['SLOW_QUERY_THRESHOLD']:
                app2.logger.warning(
                    'Slow query: Duration: %fs\n Context: %s\nQuery: %s\n ' %(q.duration, q.context, q.statement)
                )
        return response


register_request_handlers(app)

查询信息元组包含属性

标签:Flask框架

文章评论

评论列表

已有0条评论