【发布时间】:2021-08-24 11:19:48
【问题描述】:
我有一个在 Docker 容器中运行的 Python API,该 API 使用来自 MySQL 数据库的数据,但始终是最新数据。目前,每次我们处理 API 上的查询时,我们都会在 db 上运行 SELECT 查询以获取最新版本的数据。问题是这在性能和资源方面绝对没有效率,因为响应越来越大。我尝试使用 Docker 卷和计划脚本设置一些东西来每天更新卷,但它是一个真正的 gaz 工厂,速度不够快。
我的问题是:有没有办法通过每次在数据库上提交新数据时运行 SELECT 查询来创建可以更新本地数据的连接?
我们的数据库查询非常简单,它只是一个
SELECT field_1, field_2 FROM table WHERE field_3 = "value"
我们正在使用 PyMySql 创建如下连接:
cnx = pymysql.connect(
host="address",
user="user",
password="password",
db="db_name",
charset="utf8mb4",
cursorclass=pymysql.cursors.DictCursor,
)
提前感谢您的帮助!
【问题讨论】:
-
不,实际上不可能,因为 mysql 没有通知功能。您需要在应用程序中实现消息队列或通知功能,而不是为此使用 mysql。
-
数据库是否也被同一个应用程序填充?
-
@rfkortekaas 不,数据库由完全不同的应用程序填充,有时是手动填充
-
缓存数据库响应,尝试使查询响应更小,或尝试在查询中调整数据库(您需要
field3上的索引吗?)都可以提供帮助;这与是否在 Docker 中运行无关。
标签: python mysql sqlalchemy pymysql