PostgreSQL 中的分类账速度很快!

主要观点:作者在纯 PostgreSQL 中实现了一个账本pgledger,项目有进展后收集了性能数据,速度较快,虽不如TigerBeetle但对大多数应用已足够,账本在主数据库的简单性很重要。
关键信息:

  • 有测量性能的脚本performance_check.go,可输入账户数、并发工作线程数、运行时间等。
  • 本地测试结果:低争用场景下每秒 10636.8 次转账,每次转账增加约 743 字节;有账户争用场景下每秒 7558.9 次转账,每次转账 743 字节。
  • 远程测试结果:在Neon的免费数据库上,每秒 1631.2 次转账,每次转账 745 字节,需增加 PostgreSQL 客户端的连接池大小。
  • 未来优化方向:减少每次转账的数据量,如去除重复字段、使用更节省空间的 ID 格式、去除created_at字段等。

重要细节:

  • 本地测试使用 M3 Macbook Air 上的 vanilla、unoptimized PostgreSQL 17.5,通过brew install postgresql@17brew services start postgresql@17安装。
  • 远程测试在至少一个美国州远的云数据库上进行,免费数据库有 2 vCPU 和 8GB 内存。
  • 性能测试中还测量了数据库前后大小及每次转账使用的磁盘空间。
  • 关于增加连接池大小的参考链接https://github.com/jackc/pgx/blob/777e7e5cdf2d349c37e1eef8eedc0e21857e9b95/pgxpool/pool.go#L141
阅读 21
0 条评论