【发布时间】:2015-02-20 18:58:36
【问题描述】:
当我接到一个让我思考了一段时间的任务时,我遇到了这个问题。但无法提出更准确或更令人满意的答案。
任务是这样的,
我已经拥有的东西
- 包含用户详细信息的“用户”表。比如createdTime, type(agent, admin, other), id等,(这个表里面的行(条目)太多了)
交给我的任务是
- 创建一个新表来跟踪被删除的用户。
- 然后将“用户”表与这个新创建的表连接起来,并显示尚未删除且类型='代理'的用户。
现在我的问题是
- “为什么他们要求我创建一个新表而不是创建一个新列(在用户表中),它将存储一个标志(如果用户被删除,则为真,否则不删除)
- “加入不是很耗时吗?”
- (在当前的“用户”表中创建一个新列将有助于保持用户的详细信息不变。但是创建一个新表 - 这会有什么帮助?)
当我向我的团队成员提出这个问题时,他回答“如果你创建一个新列,很多行的值可能是空的,并且空间浪费”(他说的是也对。)
这表明他在查询时间上越来越关心空间。
现在我们可以用钱获得任何数量的空间,但速度更重要。如果速度较慢,那么节省磁盘空间的任何东西有什么用。
我们不应该更多地关心时间和更少的空间吗?
我想知道你对此有何看法。什么对你更重要,为什么?
我知道这个问题可能会被否决但我想知道大多数开发人员在这种情况下的想法。他们更关心的是空间还是时间?
感谢您的宝贵时间。
【问题讨论】:
标签: performance diskspace benchmarking