1
3
首先,与写作相比,阅读总是势不可挡,因为每一面“墙”被看到的次数要比它被更新的次数多得多。所以你最好快点读。 第二,这些大型社交网站固有的问题之一是数据的分发(共享、分区,没有一个数据库能够存储所有帐户、所有朋友、所有通知),这意味着当一个新的通知挂在墙上时,必须通知朋友 其他 服务器。这意味着更新是异步的,并且无论如何都是基于消息传递的。 所以我肯定会选择一个为阅读而优化的结构。 我建议你浏览一下Facebook和MySpace等网站架构中的各种人所做的公开演讲,比如 this Christa Stelzmuller's one . 他们在设计中解释了很多思考和推理。 |
2
1
与选择相比,更新速度非常慢…几个数量级。另外,随着站点规模的扩大,您将在内存中缓存所有提取,因此选择的速度将是微不足道的。 |
3
1
在这种情况下,在(Touser,Identity)上创建聚集索引似乎是一个坏主意,因为聚集索引确实应该按升序插入。当然,SQL将负责保持表的排序,但这会带来很高的性能成本(这是您的问题所在),但一般来说,对于聚集索引,不建议提前知道没有特定顺序的插入。这是一个非常好的 three part article 关于聚集索引建议。 我已经说过了,我将继续使用identity列作为聚集索引,并在touserid上创建一个非聚集索引,或者创建一个datetime列。通过包含日期时间列,可以更有效地查询最近的数据。 对于缓慢的更新,社交网站上的状态更新是消息队列的理想情况。这样,您就可以根据需要对数据库进行调优,以加快读取速度,并且如果数据库对写入性能有影响,那么用户就不必忍受这种影响。从他们的角度来看,更新是即时的,即使可能需要一些时间来“坚持”。 对于非常大的数据库,我将遵从SQL专家的意见,他们可以讨论分区策略(对于较新的数据,较小的更易于管理的表,对于较旧的数据,较大的/重索引的表)和复制解决方案。 |
ecology · 基于R中随机生成数集的子集列 2 年前 |
Krischk · 使用python;获取列表中错误项的索引[已关闭] 2 年前 |
Mohona · 对一维数组元素的迭代在几次迭代后给出了索引错误 2 年前 |
X3VI · 熊猫-重命名_轴后无法按预期工作-为什么? 2 年前 |
dam · 为什么这是我使用索引的输出?什么是索引?[闭门] 2 年前 |
Sahil Panhalkar · 显示索引超出范围的列表更新语句 2 年前 |
SpaceBallz · 比较嵌套列表中的值 2 年前 |
startresse · 自定义type\u索引顺序,无boost 2 年前 |