TimescaleDB比纯PostgreSQL慢。

4

我安装了TimescaleDB和PostgreSQL来测试时间序列数据的性能。我已成功设置超级表,并使用从我的C#程序插入的2M行进行测试。但是TimescaleDB的处理速度比纯PostgreSQL慢得多。即使使用了TimescaleDB,我的程序在插入一些百条记录后也没有响应。我不知道为什么。有人可以给我一些提示吗?或者我漏掉了什么?

1个回答

2
我们需要更多信息才能确定你遇到的问题。如果在插入几百条记录后,TimescaleDB根本没有响应,那么肯定是出现了一些配置错误,无论是在数据库还是系统级别上。客户端只是超时了吗?还是伴随着某种错误?如果进程挂起了,你是否知道系统在这段时间内正在做什么(例如,是否有大量IO,是否CPU已经达到最大值)?当出现这种情况时,您是否看到任何争用的锁(请参见Postgres锁监控)?此外,看到您的数据模型以及如何创建TimescaleDB超表也很重要。
另外,请注意,如果行数较少且单个行插入,则TimescaleDB未必会优于Postgres。当您拥有数千万行或更多行并进行批处理插入时,TimescaleDB才会发挥其优势。有关更多信息,请参见PostgreSQL vs TimescaleDB Blog Post

感谢您的回复。我设置了一个测试来查看TimescaleDB的插入操作速度。程序在Postges上运行良好,平均每秒插入约10K条记录。但是在使用Timescale时,它卡在某个地方,无法继续插入更多数据。测试期间内存或CPU使用率并不高。 - Thach Nguyen
请提供你的Postgres和TimescaleDB版本、postgresql.conf文件以及插入数据的SQL查询语句。 - Binakot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接