因此,我在使用 PostgreSQL 时目睹了以下行为。
我有一个这样的表:(id INTEGER ..., msg VARCHAR(2000))
然后我运行两个程序A
,B
它们做的事情完全相同,即进行 20000 次插入,然后进行 20000 次检索(基于它们的 id)。唯一的区别是程序A
插入包含 2000 个字符的消息,而B
只插入最多包含 10 个字符的消息。
问题是所有插入和检索的平均时间A
总是比其中少约 15 毫秒,因为添加“更大”的数据是B
没有意义的。A
关于为什么会发生这种情况的任何想法或提示?可能是当不使用msg
系统的所有字符时,将其余空间用于其他目的,因此如果msg
已满,系统会更快?
基于@Dan Bracuk 评论。我节省了不同事件的时间,并意识到以下情况发生了,在程序A
中有很多次插入非常快,而在程序B
中从来没有这种情况,这就是为什么平均速度A
比B
但我也无法解释这种行为.