【问题标题】:Can anyone please explain "storing" vs "indexing" in databases?谁能解释一下数据库中的“存储”与“索引”?
【发布时间】:2011-01-07 08:30:30
【问题描述】:

在搜索时,什么是存储,什么是索引字段? 具体来说,我说的是 MySQL 或 SOLR。

有没有关于这个的详细文章,我搜索了一些没有运气!

谢谢

【问题讨论】:

    标签: sql mysql database search indexing


    【解决方案1】:

    将信息存储在数据库中只是意味着将信息写入文件。

    为数据库编制索引涉及查看表中的数据并创建一个“索引”,然后当您想要检索存储的数据时,该索引用于在表中执行更有效的查找。

    【讨论】:

      【解决方案2】:

      来自Wikipedia

      数据库索引是一种数据结构,它以降低写入速度和增加存储空间为代价提高对数据库表的数据检索操作的速度。可以使用数据库表的一列或多列创建索引,为快速随机查找和有效访问有序记录提供基础。存储索引所需的磁盘空间通常小于表所需的空间(因为索引通常仅包含要根据其排列表的键字段,并且不包括表中的所有其他详细信息),从而产生可以为数据太大而无法存储在内存中的表在内存中存储索引。

      存储只是将数据放入表中。

      【讨论】:

        【解决方案3】:

        存储与索引是SOLR 的概念。

        SOLR 中,无法搜索或排序stored 字段。它可以作为包含对 indexed 字段的搜索的查询的结果来检索。

        相反,在MySQL 中,您也可以对未索引的字段进行搜索和排序:这会更慢,但仍然可以(与SOLR 不同)

        【讨论】:

          【解决方案4】:

          存储数据只是将数据存储在某个地方,以便您以后可以检索它。索引的作用在于有效地检索部分数据。 Wikipedia 很好地解释了这个想法。

          【讨论】:

            【解决方案5】:

            存储只是将数据保存到磁盘(或其他任何东西),以便数据库稍后可以根据需要检索它。

            索引意味着创建一些单独的数据结构,以更快的方式优化数据的位置和检索,而不是简单地读取整个数据库(或整个表)并查看每条记录,直到数据库搜索算法找到你想要的问它...通常数据库使用所谓的平衡树索引,它是二叉树概念的扩展。在 google/wikipedia 上查找 二叉树 以更深入地了解其工作原理...

            【讨论】:

              【解决方案6】:

              数据

              L1. This
              L2. Is
              L3. My Data
              

              而索引是

              This -> L1
              Is -> L2
              My -> L3
              Data -> L3
              

              数据/索引类比也适用于书籍。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2017-04-07
                • 2015-12-21
                • 1970-01-01
                • 2015-11-23
                • 2013-05-23
                • 2017-07-23
                • 1970-01-01
                相关资源
                最近更新 更多