【发布时间】:2011-06-27 11:11:34
【问题描述】:
我正在创建一个将存储 100.000(未来可能更多)用户的数据库。虽然这显然发生在每个用户有 1 行的表中,但每个用户都可以(并且将)存储数百个项目。在编程语言中,这意味着用户有 2 个整数数组(或一个二维数组):一列是 itemid,一列是金额。
我的直觉告诉我要创建一个表格来保存所有这些项目,其中包含(用户 ID、项目 ID、金额)之类的行。然而,这将导致一个巨大的表。 200.000 个用户,每个用户有 250 个项目……也就是说一张表中有 5000 万个条目。这一点,再加上桌子将持续快速变化的事实,让我感到害怕。 (有多快?我估计每秒最多 100 次修改。)
通常会有 100 到 2000 个用户,所有用户都添加和删除项目,以及修改数量。这些动作可以并且将会在编程代码中发生。如下:
- 用户启动会话,程序从数据库中加载所有用户项
- 用户修改项目列表
- 每隔几分钟,更改就会保存到数据库中
- 当用户结束会话时,它也被保存到数据库中
值得注意的是,用户可以存储的物品数量是有上限的。
除了使用单独的表格之外,还有其他选择吗?也许将值保存在格式化的文本字符串中?或者这是使用 MySQL 数据库实际上是一个 Bad Idea™ 的实例之一?
感谢您的宝贵时间和见解。
【问题讨论】:
-
这正是关系数据库的用例。
标签: performance database sql