我有三個表格,一個用戶自定義級別,另外兩個表格用於上述級別的upvotes和downvotes。SQL定期統計一個表中的所有新選票並在另一個表中增加總計數值
我現在有近千萬的選票投票,而且每當有必要時計算所有選票的等級變得非常慢,所以我打算在關卡表上添加兩列,並記錄upvotes和downvotes ,服務器將每24小時更新一次。
不幸的是,投票表沒有自動遞增的主鍵列,而是主鍵是mapid和userid的組合,所以一個用戶不能爲同一個映射投票兩次。
所以我在投票表中添加了一列「計數」,如果它沒有被添加到聚合數據中,則爲0,如果它具有1則爲0。這樣我就不需要重新計算已經添加到彙總數據中的所有投票,只有新的投票。
我的查詢需要:
- 選擇都具有其計計數設爲0
-Take從該行的的azazaz,並增加thumbsup計數的水平表
說的azazaz票- 設置爲1表示該投票
我正在使用MySQL。所有幫助非常感謝!
Table maps_thumbsup
userid | mapid | counted
Table maps_thumbsdown
userid | mapid | counted
Table maps
id | authorname | leveldata | ... | thumbsupcount | thumbsdowncount
什麼是你的數據庫結構,到目前爲止你試過了什麼? – vaso123
包括模式或表格表示將有助於回答您的問題 – KidTempo
模式將會有所幫助。此外,聽起來您可以從使用某些唯一索引中受益。您是否調整過MySQL的性能,或者您是否使用默認值? – Coop