当前位置:  开发笔记 > 数据库 > 正文

在PostgreSQL中,在同一个表中包含TEXT列是否更快,而不是单独的表?

如何解决《在PostgreSQL中,在同一个表中包含TEXT列是否更快,而不是单独的表?》经验,为你挑选了1个好方法。

您认为哪种设计在PostgreSQL上运行得更快?

    制作一个15列的varchars等表,但将所有TEXT列放在一个带有fkey链接的单独表中,并返回到该表.让我们假设您想要搜索ID为"4"的记录,然后将所有行拉回来,包括连接表中TEXT列的内容.让我们假设这些表有500,000行.

    制作15列varchars等表,并将TEXT列包含在同一个表中.再次,想象与上面相同 - 抓取记录ID 4并拉出完整记录,表中有500,000行.

我的意思是,在大多数数据库中,我理解它的方式,当你到这些TEXT列的工作方式的物理层时,它们实际上在每行的表列中保留一个小ID,并且该ID转到一个单独的,数据库中的独占页面块(或其他命名法).所以,对我来说,似乎选项B运行得更快,因为不需要fkey连接的开销,并且因为TEXT列实际上不占用给定表中该列中的整数空间 - 并且该整数是数据库中某个页面块的关键字.



1> 小智..:

PostgreSQL不像其他DBMS一样处理TEXT列.

从他们的文档:

提示:除了使用空白填充类型时增加的存储大小,以及在存储到长度受限的列中时检查长度的一些额外周期之外,这三种类型之间没有性能差异.虽然character(n)在其他一些数据库系统中具有性能优势,但它在PostgreSQL中没有这样的优势.在大多数情况下,应该使用文本或字符变化.

查看手册

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有