【发布时间】:2014-03-18 22:26:24
【问题描述】:
我正在为我的公司设计一个 RoR 项目,我们的开发团队已经就设计,特别是数据库进行了一些争论。
我们有一个名为Message 的模型需要持久化。这是一个非常非常小的模型,除了 id 之外只有三个 db 列,但是当我们投入生产时可能会有很多这些模型。我们每天看到多达 1,000,000 次插入。模型只会被它们上的两个可以索引的外键搜索。同样,模型永远不必删除,但我们也不必在它们大约三个月大后保留它们。
那么,我们想知道的是,在 Postgres 中实现这个表是否会带来严重的性能问题?有没有人有过非常大的 SQL 数据库的经验来告诉我们这是否会成为一个问题?如果是这样,我们应该选择什么替代方案?
【问题讨论】:
-
有一个很好的缓存层和 PG 中的一些小配置,你应该没问题。您应该逐个处理性能问题并避免预优化。也就是说,一旦遇到瓶颈,分区和复制始终是您可以利用的绝佳选择。
-
我们在一个 5+ TB 的 PostgreSQL 数据库中每天处理大约 3000 万条消息,工作正常。
-
仅供参考,我今天碰巧在阅读postgresql.org/about 并注意到它说(原则上)表中的行数是无限的。
标签: sql ruby-on-rails performance postgresql database-design