1
對於一個遊戲,我試圖實現一個分數表。根據遊戲邏輯,當一個用戶每隔幾分鐘完成一輪時,分數通常會改變;但不保證兩個用戶將同時完成。在MySQL表中替換整個數據
爲了不重新計算每次用戶檢查分數時的分數,我打算將分數數據保存在永久性表中,每次完成一輪後都會更新。
我打算
TRUNCATE TABLE scores; INSERT INTO SCORES SELECT ....
來實現這一點,但我關心的是,當兩個用戶完成在同一時間發生的事情。我在一個連接中傳遞整個查詢(如果這很重要,則從ASP.NET中),但是兩個查詢一起被視爲原子?或者您是否建議我必須實施手動交易邏輯?
如果您建議使用事務處理,那麼將查詢與「BEGIN TRAN ... END TRAN」放在一起就足夠了,您是否建議使用MyISAM或InnoDB作爲「分數」表?
如果有問題,我的MySQL版本是5.0.92-log。
爲什麼每次計算分數時都要截斷表格? – Jordan 2012-04-04 21:51:45