您认为哪种设计在 PostgreSQL 上运行得更快?
制作一个 15 列的 varchars 等表,但将所有 TEXT 列放在一个单独的表中,并通过 fkey 链接返回到该表。假设您要搜索 ID 为“4”的记录,然后将所有行拉回,包括连接表中 TEXT 列中的内容。让我们假设这些表有 500,000 行。
制作一个 15 列的 varchars 等表,并将您的 TEXT 列包含在同一个表中。再次想象与上面相同的情况——获取记录 ID 4 并提取完整记录,表中有 500,000 行。
我的意思是,在大多数数据库中,按照我的理解,当您深入了解这些 TEXT 列如何工作的物理层时,它们实际上在每一行的表列中保留了一个小 ID,并且该 ID 单独存在,数据库中的独占页块(或其他命名法)。所以,对我来说,似乎选项 B 会运行得更快,因为不需要 fkey 连接的开销,并且因为 TEXT 列实际上并没有占用该给定表中该列中的整数空间——并且该整数是数据库中其他地方页面块的键。