插入性能基准

时间:2015-10-23 19:23:58

标签: postgresql

了解postgresql数据库中插入的预期性能基准是非常有用的。通常情况下,人们会得到的答案类型含糊不清,而且在很多方面都是正确的。例如,答案的范围可以从每个数据库的不同,到它取决于索引/列的数量,对硬件有很大的不同,对数据库调优有很大的不同等。我的目标是知道插入性能的一般准则,大致与有经验的SQL Developer直觉说“这似乎很慢,我应该尝试优化它”的等效水平相同。

让我说明一下,有人可以问买房要多少钱?我们回答,贵!房价的大小和国内的位置都有许多因素影响价格。但是,对于提出这个问题的人,他们可能认为20,000美元是很多钱,所以房子必须花费这么多。说它很昂贵而且有很多变数显然无助于提问的人多。对于有人来说,一般来说房屋的“正常”成本从10万美元到100万美元不等,平均中产阶级家庭可以负担20万到50万美元之间的房子,并且每个房间的正常成本会更有帮助。平方英尺是100美元/平方英尺。

所有这些都说我正在寻找以下因素的插入物的球场性能基准

  1. 将1000,10000,100000行插入平均表格大小为15列。
  2. 添加到表中的每5个额外列的粗略影响
  3. 每个指数对表的粗略影响
  4. 特殊类型索引的影响
  5. 人们有任何其他想法
  6. 如果你是一位经验丰富的postgresql性能调音师,我对这些内容感到很满意。

1 个答案:

答案 0 :(得分:1)

对于您指定的条件列表,您无法获得有意义的数字,因为您甚至没有列出会对INSERT命令的速度产生深远影响的条件类型:

  • 硬件功能:

    • CPU速度+核心数
    • 存储速度
    • 内存速度和大小
  • 群集架构,以防批量巨大且可以越过
  • 执行方案:

    • 文本批处理,预先生成的插入一个接一个
    • 直接基于流的插入
    • 通过特定驱动程序插入,例如ORM

此外,插入速度可以是:

  • 维持(一致或平均)速度
  • 单次操作速度,即单次执行

你总能找到这样的标准组合如此糟糕,你将难以每秒进行100次插入,另一方面,在正确设置的环境和执行计划中可以超过1m的插入。< / p>

所以你会发现你的实现速度介于两者之间,但鉴于已知条件,速度将为42:)