當前位置:編程學習大全網 - 源碼下載 - Flask SQL性能測試:使用flask-sqlalchemy檢測慢SQL語句

Flask SQL性能測試:使用flask-sqlalchemy檢測慢SQL語句

摘要: Flask , flask-sqlalchemy , SQL

flask-sqlalchemy 可以記錄下在客戶端請求應用的過程中,後臺涉及的SQL語句,以及SQL語句執行的時長,主要基於flask-sqlalchemy下的 get_debug_queries 實現。在主視圖腳本中加入壹個 after_request 視圖如下。

其中開啟SQL Debug模式 app.config['SQLALCHEMY_RECORD_QUERIES'] = True , get_debug_queries 返回請求涉及的所有SQL語句,調用 duration 獲得SQL執行時長,只要大於0.2就用logging模塊記錄到磁盤。

啟動程序,點擊應用功能,logging會把大於時間閾值的SQL寫入本地文件query_log.log

直接搜索Slow query,得到以下幾條記錄

三張表pira_ent_alias,pira_score,pira_senti_stats都是簡單的filter查詢,沒有復雜的邏輯,查看MySQL explain執行計劃

explain結果解析

增加索引

三張表都進行了全表掃描,先加上索引再說,給pira_ent_alias增加ent_name和ent_shortname的普通索引

給pira_score,pira_senti_stats增加ent_name和datetime的復合索引,復合索引從字段組合的 最左邊開始就要走 ,否則無效,因此如果filter條件只有datetime還是全表掃描,filter條件是ent_name或者ent_name和datetime有效。

給三張表增加索引之後,再次運行get_debug_queries,閾值降低為0,查看日誌如下,執行時間都有很大降低

  • 上一篇:linux有幾種版本?
  • 下一篇:ios怎麽打不開鬥魚啊,換114也不行
  • copyright 2024編程學習大全網