某銀行校園卡繳費效能測試和SQL優化

2021-05-27 01:01:25 字數 1254 閱讀 1068

在某銀行做校園卡繳費的測試過程中,發現成功繳費時間很長,大約需要75秒左右,原因分析:

在做校園卡繳費的時候,首先是從資料庫中查詢到需要繳費的費項,然後再對該費項進行繳費,繳費成功後修改相應的狀態,交易完成後,檢視日誌,發現下面的查詢語句執行時間很長,在資料庫中執行時間大約74.516秒,可見幾乎所有的時間都花在查詢上。

select b.stu_id, b.term_id, b.cost_code

from bib_booking_student_info a, bib_booking_fee_info b

where a.busi_id = b.busi_id

and a.corp_id = b.corp_id

and a.term_id = b.term_id

and a.stu_id = b.stu_id

and b.stu_stat = '0'

and a.busi_id = '100104'

and a.corp_id = 'e000000059'

and a.term_id = '0101'

and a.stu_id = '59000030';

解決辦法,優化此sql語句(說時候,這個sql寫得真不好,只是實現了功能,完全沒有考慮效能,尤其當資料庫大的時候),下面是優化後的sql語句:

select b.stu_id, b.term_id, b.cost_code

from bib_booking_fee_info b

where b.stu_stat = '0'

and exists( select 1 from bib_booking_student_info a where

a.corp_id = b.corp_id

and a.term_id = b.term_id

and a.stu_id = b.stu_id

and a.busi_id = b.busi_id

and a.busi_id = '100104'

and a.corp_id = 'e000000059'

and a.term_id = '0101'

and a.stu_id = '59000030'

)此語句執行時間只有0.219秒,快了很多很多。

總結:在類似於這種交易,先查詢再繳費(改變字段狀態)的交易,執行查詢時間的多少直接影響到此交易的效能。假如只是做插入,不做查詢的交易,這種交易一般都很快,有查詢,然後再繳費(改變字段狀態)的交易,如果響應時間很慢,那需要在查詢sql語句上下功夫。

移動校園卡,電信校園卡,聯通校園卡

電信,移動,聯通,國內的三大運營商針對學生的一種優惠 通常的優點肯定有最基本的,便宜,內流量豐富並且包含一定的通話分鐘數。來吸引同學們開新卡!下面我給大家看一下2019年移動的校園卡的 內容 以上 正常在外面辦理的 肯定在68元以上,校園卡只需要200元,你可以用一年,這就是三大運營商給學生開學時候...

讀取校園卡ID號

物聯網 讀取校園卡id號 實驗截圖 include include rfid rfid 10,5 unsigned char rc size unsigned char blockaddr 選擇操作的塊位址0 63 unsigned char i,tmp unsigned char status u...

NFC模擬校園卡開門禁

首先說明一點,校園卡是帶支付的加密卡,肯定無法複製支付部分,這也是違法的。但是,我們學校門禁只識別學生的id,所以,只需要複製卡里的id,在寫到空白卡里即可。物料準備 使用步驟 開啟 clone uid 功能 貼要複製的卡 點選 calculate block 0 and clone uid 貼白卡...