【发布时间】:2014-12-22 14:34:03
【问题描述】:
我该怎么办?
想象一下网球比赛。
操作员按下按钮(动作)“Ace”、“Fault”、“Winner”、“Unforced error”等 我们有很多运营商,同时比赛。而且我们有很多用户对 db 的请求(每分钟约 1000 个)。
存储 match_id、player、action、time_of_action 的最佳方式是什么?
1) 每个匹配都有 1 行的表:match_id,操作。动作、玩家、时间戳编码为 1 个字符串 #of player TINYINT id of action CHAR timestamp TIMESTAMP
示例:操作 =“1A2014-11-28 09:01:21 2W2014-11-28 09:01:33 1F2014-11-28 09:01:49”
2) 一个匹配的多行表:id、match_id、player、action_id、当前时间戳(id PRIMARY KEY) 一天后将有大约 250K 行(每场比赛 300 场 * 1 场比赛中的 40 场比赛 * 每天 20 场比赛)
什么更好:很多行和很多请求 SELECT player, action_id, timestamp FROM scores WHERE match_id = N 或者 相同数量的请求,更少的行 ( /300 ) 但行中的数据更大?
对不起我的丑陋语言,希望你能理解我,如果没有,请告诉我
添加: 我打算将它用于现场或赛后的比赛统计。 用户打开页面统计比赛费德勒-纳达尔,每10-30秒页面刷新一次 示例:http://www.wimbledon.com/en_GB/slamtracker/slamtracker.html?ts=1419259452680&ref=www.wimbledon.com/en_GB/slamtracker/index.html&syn=none&
【问题讨论】:
-
商店数据的主要考虑因素是您将如何使用它。没有这些信息,就没有关于什么是“最佳”的指导。
-
我打算用它来统计现场或赛后的比赛数据。用户打开页面统计比赛费德勒-纳达尔和每10-30秒页面刷新示例:wimbledon.com/en_GB/slamtracker/…
-
奥利你是最棒的! p.s.当我在俄罗斯论坛上发布类似的问题时,很多“专业人士”给我写信说我很愚蠢,白痴,新手,他们有多好。但是没有人发布答案。你们总是把我想知道的写对。信息量很大。谢谢!