We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent d3dc93a commit 26ead30Copy full SHA for 26ead30
docs/grokking/chapter-9.md
@@ -70,3 +70,17 @@
70
如果你注意到,我们并没有在每个节点中存储最佳建议及其计数。存储这类信息非常困难,因为Trie是自上而下存储的,在父节点创建之前,子节点尚未生成,因此无法轻松存储它们的引用。为了解决这个问题,我们需要在构建Trie的过程中重新计算所有最佳词条及其计数。
71
72
具体而言,每个节点在构建时会计算自己的最佳建议并将其传递给父节点。父节点会合并所有子节点的结果,从而确定自己的最佳建议。
73
+
74
+## 5. 规模估算
75
76
+如果我们构建的服务规模与Google相当,每天可以预期有50亿次搜索,这大约相当于每秒60,000次查询。
77
78
+由于50亿次查询中会有大量重复项,我们可以假设只有20%的查询是唯一的。如果我们只想索引最热门的50%搜索词条,可以排除很多低频搜索的查询。假设我们需要为1亿个唯一词条构建索引。
79
80
+**存储估算:** 如果每个查询平均由3个单词组成,并且每个单词的平均长度为5个字符,则平均查询大小为15个字符。假设存储一个字符需要2字节,那么存储一个查询需要30字节。总存储需求为:
81
82
+1亿个词条 × 30字节 = **3 GB**
83
84
+考虑到数据量每天可能会增长,同时也会删除一些不再被搜索的词条。如果假设每天有2%的新增查询,并且我们维护过去一年的索引,预计的总存储需求为:
85
86
+**3 GB + (0.02 × 3 GB × 365 天) = 25 GB**
0 commit comments