如何在我的应用程序中处理AWS-RDS连接?

时间:2019-04-16 20:01:41

标签: python mysql amazon-rds

我正在寻找有关如何处理与AWS-RDS的连接的信息。每次执行查询时都应该打开和关闭连接吗?我应该使用lambda函数,为什么?

我目前已对其进行设置,因此连接保持打开状态并从此处处理执行。我没有连接关闭或超时。

conn = pymysql.connect(db=dbname, host=host, port=port, user=user,
                       password=password)
cur = conn.cursor()

然后我在整个代码中执行查询,就像这样。

cur.execute("SELECT product, amount, total " +
              "FROM " + table +
            " WHERE po_date BETWEEN %s AND %s",
            (cur_month, next_month))

1 个答案:

答案 0 :(得分:0)

这取决于您的应用程序首选项。

全局连接-如果在全局级别创建连接,则可以节省每次需要访问数据库时打开连接的开销,但是由于数据库维护着打开的连接,因此您正在使用更多的内存。如果应用程序在退出时未关闭连接,则数据库必须手动使此空闲连接超时并终止它。您将需要向数据库添加重试逻辑,以确保连接仍然有效。

每次连接-增加了创建和关闭连接的开销。在客户端和数据库端使用额外的cpu来打开和关闭连接,但是将使连接数减少。

关于使用lambda,这完全取决于应用程序设计。但是,我会说是的,请尽可能使用它!

如果要使用lambda连接到数据库,则需要构建部署包或lambda层以包含SQL客户端。以下是一些逐步说明的链接,这些说明可使用pymysql为python创建这些说明。如果需要,可以使用相同的说明将pymysql库替换为另一个SQL客户端。

https://geektopia.tech/post.php?blogpost=Create_Lambda_Package_Python

https://geektopia.tech/post.php?blogpost=Create_Lambda_Layer_Python