加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在PostgreSQL中插入“更大”的数据会使系统更快?

发布时间:2020-12-13 16:17:52 所属栏目:百科 来源:网络整理
导读:所以,我在使用PostgreSQL时目睹了以下行为. 我有这样一个表:(id INTEGER …,msg VARCHAR(2000)) 然后我运行两个完全相同的程序A和B, 即进行20000次插入然后进行20000次检索(基于其ID).唯一的 区别在于程序A使用包含消息的插入 B只插入包含最多10个字符的消
所以,我在使用PostgreSQL时目睹了以下行为.

我有这样一个表:(id INTEGER …,msg VARCHAR(2000))
然后我运行两个完全相同的程序A和B,
即进行20000次插入然后进行20000次检索(基于其ID).唯一的
区别在于程序A使用包含消息的插入
B只插入包含最多10个字符的消息.

问题是所有插入和检索的平均时间
在A中总是比在B中少约15ms,这实际上没有意义,
因为A正在添加“更大”的数据.

关于为什么会发生这种情况的任何想法或提示?可能是不使用时
msg的所有字符系统使用其余空间用于其他目的,因此如果msg已满,系统会更快?

基于@Dan Bracuk的评论.我节省了不同事件的时间,并意识到发生以下情况,在程序A中有很多次插入真的非常快,而在程序B中从来都不是这样的,这就是为什么平均A比B快但我不能解释这种行为.

如果没有关于您的设置和程序的更多细节,我无法重现这一点,所以以下只是一个有根据的猜测.可以想象你的观察是由TOAST引起的.一旦文本字段超过特定大小,它就存储在物理上独立的表中.因此,主表实际上小于所有文本值以内联方式存储的情况,因此搜索可能更快.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读