1. 程式人生 > 其它 >關於php+mysql效能在實際工作中的應用例項

關於php+mysql效能在實際工作中的應用例項

背景:在某個財務資料單中,增加一列銀行備註。

方案一:通過 收款單號(例如:20220419ABA00100000099072773758)  查詢到交易單號(例如:2022041940000001317768330300405),再查詢到充值單號(例如:1003703828D6399362770464900575),再查詢到 備註 資訊,付款叢集,db_loan_xx.charge_xx_x ,欄位 bank_comment。由於該表是以付款中心的充值單號進行切割,無法進行關聯查詢,因此需要先查詢當天全部充值記錄,然後在進行交易單號的匹配

缺點:涉及到不同叢集,只能通過關鍵索引關聯,查詢資料集合for迴圈,在查另外叢集,執行後存在一定的指令碼時長。測試統計大概用時1小時。如果關聯欄位不存在索引將耗時8小時左右。

方案二:通過大表db_loan.big_charge,該表在F_create_time欄位上建有索引,查詢時加上建立時間。每一天的資料大概在10w-20w之間。查詢該表一天的交易資料,然後for迴圈該表,將收款單號作為key,備註2作為value,以陣列的形式存在記憶體中。在寫入時,直接使用收款單號的陣列下標。

缺點:對記憶體要求較大。需要提前判斷記憶體量

方案三:一二方案折中,收款單號每500次進行查詢一次,然後使用where in 查詢銀行備註欄位,存入記憶體,迴圈寫入。