我正在寻找一些关于如何处理我与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))发布于 2019-04-21 15:49:23
这取决于您的应用程序首选项。
全局连接-如果在全局级别创建连接,则可以在每次需要访问数据库时节省打开连接的成本,但在数据库上使用了更多内存,因为它维护打开的连接。如果应用程序在退出时没有关闭连接,则数据库必须手动使此空闲连接超时并终止它。您将需要向数据库添加重试逻辑,以确保连接仍处于活动状态。
每次连接都会增加创建和关闭连接的开销。在客户端和数据库端使用额外的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
https://stackoverflow.com/questions/55715811
复制相似问题