1. 程式人生 > 實用技巧 >python SQLAlchemy 查詢慢sql

python SQLAlchemy 查詢慢sql

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