美文网首页
关于计算机的一些反直觉现象

关于计算机的一些反直觉现象

作者: xzing | 来源:发表于2019-03-23 15:37 被阅读0次

    [TOC]

    为什么数据都有了,但是不让我查询和统计?

    思考:

    如果计算机记录了每个用户读了哪本书,那么是不是也很容易知道一本书被哪些用户读过?

    你可能会觉得理所当然。

    但是,答案其实是 No。关键在于索引,什么是索引呢,举个例子:

    如果我要在字典里取找“李”这个字,常见的办法是在字典目录里先找“木”字头的所有字,假如找出100个,再到这些字里找到“李”。

    反过来,我能不能先找“子”为底的所有字,再从中找“李”呢?

    想法是好的,但现实是,没有哪本字典能提供这样的功能。

    之所以我们能先找“木”字头而不能先找“子”字底,是因为字典帮我们提供了一份“木”字头的目录而没有提供后者的目录。

    这个目录,在计算机里就称作“索引”(Index)。

    我们一般会说,字典为“木”字头建立了索引,但是没有为“子”字底建立索引。如果我们也为“子”建立一份索引,就可以反过来查到“李”字了。顺便,我们也可以在索引里面直接数出“子”字底的字有多少个。

    回到思考题,我们知道用户读过的书,但却不能统计一本书的阅读用户。你就大概猜到了,记录每个用户读了哪些书,潜台词就是我在“用户”维度建立了索引,但是却不一定也给“书”的维度建立了索引。

    再举个例子加深你的理解

    如果你在大街上随便问一个人读过哪些书,他可以很快答出来。

    但是,如果要问你大街上有哪些人读过某一本书,你可能就需要大费周折了。

    这是因为,当一本书被一个人读了之后。虽然是“书”和“人”这两个主体发生了关联。但是,只有人的脑子里记录了这个关联,书店并不会记录这本书被某人读了。人脑记住的这份关联,就是索引。

    相关文章

      网友评论

          本文标题:关于计算机的一些反直觉现象

          本文链接:https://www.haomeiwen.com/subject/lussvqtx.html