gpt4 book ai didi

postgresql - 将数据从事务表移动到历史表以提高插入性能,postgres

转载 作者:行者123 更新时间:2023-11-29 11:50:39 26 4
gpt4 key购买 nike

我有 3 个数据库表,每个表包含 600 万行,并且每年增加 300 万行。

表格信息如下: 表 1:20 个字段,每个字段平均 50 个字符。有 2 个索引都在时间戳字段上。 表 2:5 个字段,2 个字节数组字段和 1 个 xml 字段 表3:4个字段,1字节数组字段

用法如下: 在每个表中每秒插入 15 到 20 条记录。 通过连接前 2 个表创建 View ,选择主要基于第一个表中的日期字段。

现在,在所有三个表中各插入一条记录总共需要大约 100 毫秒。

我打算从 postgres 8.4 迁移到 9.2。我也想对插入性能做一些优化。另外,我打算创建历史表并将旧记录保存到这些表中。我有以下这方面的问题

  1. 创建历史表并将旧数据移动到这些表是否有助于提高插入性能?
  2. 如果有帮助,我需要多久将旧记录移动到历史表中,每天一次?还是每周/每月/每年?
  3. 如果我只保留一个月(220,000 条)数据而不是一年(300 万条)数据,是否有助于提高插入性能?

提前致谢,苏德希尔

最佳答案

我敢肯定会有比我更了解情况的人出现并提供更好的答案,但我的印象是:

  • 插入性能主要取决于您的索引策略和硬件
  • 总体而言,9.0+ 下的性能优于 8.4,这可能会影响插入性能,但我不确定这一点。
  • 您的任何想法都不会直接影响插入性能

也就是说,维护小型索引的成本低于大型索引,因此创建历史表并将旧数据移动到那里可能会通过降低索引压力来提高性能。但我希望删除您的一个索引会产生直接和更大的影响。也许您可以拥有一个包含两个索引的历史表,而只在“今天”表中维护其中一个?

如果我处在您的位置,我会在运行 8.4 且具有类似配置的机器上获得一份生产副本。然后升级到 9.2 并查看插入性能是否发生变化。然后尝试这些想法并对其进行基准测试,看看哪些可以改善情况。为了产生有用的信息,让事情尽可能与生产保持相似是绝对必要的,但它肯定会比您可能得到的任何假设答案更好的信息。

现在,100 毫秒对于插入一行 IMO 来说似乎很慢。更好的硬件肯定会改善这种情况。通常的建议是使用带有电池供电缓存的大型 strip 化 RAID 阵列。 PostgreSQL 9.0 High Performance 有关于所有这些的更多信息。

关于postgresql - 将数据从事务表移动到历史表以提高插入性能,postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com