【问题标题】:Optimizing (and caching?) postgreSQL writes in Django在 Django 中优化(和缓存?)postgreSQL 写入
【发布时间】:2012-08-24 20:19:59
【问题描述】:

我有一个应用程序,当未优化时,它需要多次写入 postgreSQL 数据库以响应实时信息 - 每秒最多 1 次!!!

因此,我想通过 redis/redisco 或 memcache 缓存此数据流,然后每约 5 分钟在我的 postgreSQL 数据库中执行一次 bulk_create。

据我了解,django memcache 将存储在内存中,但是当需要写入时,可以使 memcache 无效。

另外,我正在考虑将信息放入 redis,可能使用 redisco 模型,并每隔约 5 分钟对数据库执行一次 bulk_create。

三部分问题:

  • 哪个选项更适合长期扩展?
  • 各有什么优缺点?
  • 最后,有没有人有我可以阅读的参考资料/教程?

谢谢!

【问题讨论】:

  • 每秒 1 次不太可能对 postgres 造成问题。我建议直接使用 Postgres 进行写入,并使用 Redis 或 Memcached 缓存读取。
  • "当需要写入时,可以使内存缓存无效。"也有可能在写入到达磁盘之前丢失缓存。为数据库缓存写入确实是有风险的。它有点与ACID 中的“D”作斗争。

标签: django postgresql memcached redis


【解决方案1】:

过早的优化是万恶之源。 PostgreSQL 能够处理繁重的混合读/写工作负载。从那里开始,并根据需要开始探索其他选项,但是使用高端服务器,当 PostgreSQL 9.2 发布时,您将能够在 PostgreSQL 9.2 上获得高达每秒约 14000 次写入(取决于查询细节)。在 9.1 中,每秒最多可以写入 3000 次,差异与锁定行为有关。

还没有优化。如果您开始每秒进行数百次写入,那么也许这是值得的。然而,特别是如果这些是简单的写入,你最好保持你的架构简单。

【讨论】:

    猜你喜欢
    • 2012-03-14
    • 2014-08-06
    • 1970-01-01
    • 2020-12-01
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2016-05-23
    相关资源
    最近更新 更多