[英]What is the most efficient way to bulk insert negative credit amounts into my transaction table for all users in my users table
數據庫:MySQL版本5.5.38使用mysqli的連接
服務器代碼庫:PHP 5.4.30
我需要一些建議,以最有效的方式根據另一個表的內容將記錄批量插入表中。
我們的系統具有“信用”。 可以購買和轉讓“信用”。 信用隨着時間的推移而過期(每天損失X),並通過獲取交易表中CreditTotal列的總和來計算。
我想為系統中的每個用戶插入一個數量為1且信用值為-X的事務,該事務由我們服務器上的cron任務觸發。
這需要作為日常任務運行,以便在信用度降低時可以提前通知用戶。 我可能有大量的系統用戶。
表1:交易
Field name Type Allow nulls? Key Default value Extras
TransKey bigint(20) No Primary NULL auto_increment
OfferKey bigint(20) Yes None NULL
ProdKey bigint(20) Yes None NULL
Credit bigint(20) Yes None NULL
Qty bigint(20) Yes None NULL
TotalPrice decimal(10,2) Yes None NULL
CreditTotal bigint(20) Yes None 0
Price decimal(10,2) Yes None NULL
TranDteTme timestamp No Indexed CURRENT_TIMESTAMP
UserKey bigint(20) Yes Indexed NULL
Field name Type Allow nulls? Key Default value Extras
UserKey bigint(20) No Primary NULL auto_increment
有效執行此操作的最佳方法是什么,是否有任何我可以避免的陷阱?
值得一看的是MySQL事件調度程序,而不是CRON / PHP。 對於這種大規模批處理操作,您可能需要考慮編寫MySQL函數或過程 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.