MySQL 数据使用谷歌云 SQL 和 SQLAlchemy 进行缓存

Posted

技术标签:

【中文标题】MySQL 数据使用谷歌云 SQL 和 SQLAlchemy 进行缓存【英文标题】:MySQL data is caching with google cloud SQL and SQLAlchemy 【发布时间】:2019-08-28 07:41:08 【问题描述】:

这是我关于***的第一个问题,所以如果我做错了什么请纠正我:)。

我在 Google Cloud SQL 上托管的数据库中的数据正在使用 Flask-SQLAlchemy 进行缓存。当我添加一条新记录并尝试获取该记录时,它不存在。

我正在使用一个添加记录的脚本,我使用一个脚本来获取记录。

我第一次尝试使用 SQLite,效果很好。但使用 Google Cloud SQL 中的 mysql 则不然。

每次我向数据库添加/更改某些内容时,我都会使用db.session.commit()

我使用 pymysql 模块:pymysql.install_as_MySQLdb() 我的连接 URI 如下所示:mysql://...

编辑: 这是我用来添加新记录的(我的脚本是用来添加笑话的):

new_joke = Jokes(joke, user["username"], user["id"], avatar_url, "0")
db.session.add(new_joke)
db.session.commit()

这是我用来获取记录的(随机):

jokes = Jokes.query.all()
randint = random.randint(0, len(jokes) - 1)
joke = jokes[randint]

【问题讨论】:

嗨@Emma。感谢您的答复!我刚刚用更多代码信息编辑了我的帖子并添加了您建议的标签。 【参考方案1】:

我找到了答案!

通过在进行查询之前执行db.session.commit(),它会刷新它的缓存。

我的代码现在看起来像这样:

db.session.commit()
jokes = Jokes.query.all()
randint = random.randint(0, len(jokes) - 1)
joke = jokes[randint]

【讨论】:

以上是关于MySQL 数据使用谷歌云 SQL 和 SQLAlchemy 进行缓存的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云 SQL 很慢

从谷歌云数据存储迁移到谷歌云 sql

谷歌云sql数据读取审计日志

如何阻止谷歌云 sql 损坏数据库表

我们可以将谷歌云 SQL 与 Amazon Elastic Beanstalk 一起使用吗

有没有办法从谷歌云 sql 中使用 pg_cron?