有個會員表越來越多會員,但是每次新增一個會員都會給前面的會員按一定規則算獎金啥的,反正越來越多的會員後,每增加一個會員時就會越來越慢(要計算的越來越多),怎麼處理這種場景。
走同样的路,发现不同的人生
可以先增加會員,獎金按一定時間範圍計算,比如一周一結算,建張引薦表,記錄最近一周的關聯信息,然後跑個腳本,一周計算一次獎金。
1.這個結算發生在註冊步驟?如果是的話,把結算的步驟拎出來,寫到表里或訊息隊列裡,註冊就乾註冊的事
2.但是看上面的評論說日結,應該有做到步驟1,那結算整個流程應該是某一個固定的時間點執行所有今天加入的會員的相關結算(比如早上1點執行),慢點也無所謂把,只要把結算的跑完就好了
表結構看看設計是否,索引有沒有可以優化的。諸如此類的
把結算拿出來單獨運行吧。寫個計畫任務每天跑一邊。或者把結算寫在新用戶第一次登陸上也行。
這種需求就可以跑訊息隊列了。 會員分利計算的訊息先push到訊息佇列,然後寫個php腳本接收訊息丟到快取去,然後每天業務低高峰期做入庫就行了
可以先增加會員,獎金按一定時間範圍計算,比如一周一結算,建張引薦表,記錄最近一周的關聯信息,然後跑個腳本,一周計算一次獎金。
1.這個結算發生在註冊步驟?如果是的話,把結算的步驟拎出來,寫到表里或訊息隊列裡,註冊就乾註冊的事
2.但是看上面的評論說日結,應該有做到步驟1,那結算整個流程應該是某一個固定的時間點執行所有今天加入的會員的相關結算(比如早上1點執行),慢點也無所謂把,只要把結算的跑完就好了
表結構看看設計是否,索引有沒有可以優化的。諸如此類的
把結算拿出來單獨運行吧。寫個計畫任務每天跑一邊。或者把結算寫在新用戶第一次登陸上也行。
這種需求就可以跑訊息隊列了。
會員分利計算的訊息先push到訊息佇列,然後寫個php腳本接收訊息丟到快取去,然後每天業務低高峰期做入庫就行了