python SQLAlchemy 查詢慢sql
阿新 • • 發佈:2020-11-27
1.config檔案新增如下配置
FLASKY_DB_QUERY_TIMEOUT = 0.1 # 設定sql執行超時時間 0.1s SQLALCHEMY_RECORD_QUERIES = True # 啟用慢查詢記錄功能
2.public檔案新增如下程式碼,可將 列印的語句個性化輸出
from flask_sqlalchemy import SQLAlchemy,get_debug_queries @app.after_request def after_request(response): for query in get_debug_queries():print(query.statement,query.duration) if query.duration >= app.config['FLASKY_DB_QUERY_TIMEOUT']: # query.statement:查詢的sql # query.duration: 耗時 # 列印超時sql和時間 print('----慢sql-----\t\nsql:\t\n {sql} \t\n耗時:{duration}'.format(sql=query.statement,duration=query.duration))return response
3、完整的 public檔案程式碼如下:
from flask import Flask from flask_sqlalchemy import SQLAlchemy,get_debug_queries import config app = Flask(__name__) app.config.from_object(config) db = SQLAlchemy(app) @app.after_request def after_request(response): for query in get_debug_queries():if query.duration >= app.config['FLASKY_DB_QUERY_TIMEOUT']: # query.statement:查詢的sql # query.duration: 耗時 # 列印超時sql和時間 print('----慢sql-----\t\nsql:\t\n {sql} \n\t耗時:{duration}'.format(sql=query.statement,duration=query.duration) return response