gpt4 book ai didi

python - MySQL/Python 抢占式缓存

转载 作者:行者123 更新时间:2023-11-28 19:25:50 25 4
gpt4 key购买 nike

我运行一个用 python 编写的网络应用程序,并使用 mysql 作为我们的主要数据存储。我们在 amazon RDS 上有一个包含数千万行的大表,预计它会扩大 10 倍。我们运行了很多查询,这些查询根据主键选择几百个随机行(比如“select * from table where id IN (ids)”,其中 id 是主键)。它偶尔会很慢,需要 30 多秒。最终我们将不得不对表进行分片,但我们一直在考虑尝试将行的副本缓存在 memcache 中。在运行选择查询之前,我们会向内存缓存发送一个 multi_get。考虑到我们的工作流程(我们运行大量更新),如果我们也抢先将更改写入内存缓存版本的行,我们只会获得显着的性能提升。

我想知道是否有人使用过这样的设置,是否有 ORM 可以很好地处理这个问题或其他有用的工具(比如可能从 mysql 二进制日志中提取更改并将它们发送到内存缓存)。其中风险最大的部分是,如果有人忘记更新或至少使他们在 mysql 上更新的 memcache 中的一行无效。

谢谢!

最佳答案

这是 Django 中“透明”缓存的示例:https://github.com/mmalone/django-caching .但是,我应该警告您,以这种方式进行缓存会变得非常复杂、非常迅速。

如果您有数千万行并且您的访问模式通常是按行 ID,那么您可能需要考虑 NoSQL 解决方案。由于您已经在 AWS 上,请考虑使用 DynamoDBSimpleDB .两者都提供快速且可扩展的键值访问。

关于python - MySQL/Python 抢占式缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484360/

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