【问题标题】:Database indexing on non-key field非关键字段的数据库索引
【发布时间】:2016-03-02 14:05:29
【问题描述】:

我有一个关于this answer的问题。
我还发布了这个问题作为对该答案的评论,但没有得到任何回复。

它指出,在对非关键字段进行索引的情况下,架构将是:

字段名称 数据类型 磁盘大小 名字 Char(50) 50 字节 (记录指针)特殊 4 字节

我的问题是为什么需要再次存储firstName?指针还不够吗?我们只需将排序比较函数更改为在(*pointer).firstName 上进行比较,而不是在firstName 上进行比较。

【问题讨论】:

  • 理论上是不需要的:char(50) 字段可以从基表中提取。在实践中,这会导致 基表和索引从磁盘中拉出,从而消耗更多的 IO 带宽和缓冲区空间。
  • @wildplasser 有道理!
  • @wildplasser 由于我没有得到任何答案,您想将您的评论转换为答案,以便我可以关闭问题吗?

标签: database sorting indexing data-structures database-schema


【解决方案1】:

引用@wildplasser 以comment 给出的答案:

理论上是不需要的:char(50) 字段可以从 基表。在实践中,这将导致基表和 要从磁盘中提取的索引,需要更多的 IO 带宽和 缓冲空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-05
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多