对于MariaDB,是否有必要在我使用的每个函数上创建和关闭连接?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于MariaDB,是否有必要在我使用的每个函数上创建和关闭连接?相关的知识,希望对你有一定的参考价值。

我对关于MariaDB连接使用的良好实践有一些疑问,我已经创建了一个包含某些功能的库,因此我创建了连接/创建游标/.../关闭游标/关闭连接,每个函数如下:

def Func1():
    cnx=mariadb.connect(host,user,pass,db)
    cursor=cnx.cursor()
    do...Query and something else
    cnx.commit()
    cursor.close()
    cnx.close()

def Func 2():
    cnx=mariadb.connect(host,user,pass,db)
    cursor=cnx.cursor()
    do...Query and something else
    cnx.commit()
    cursor.close()
    cnx.close()
...
def FuncN():
    cnx=mariadb
    ....
    cnx.close()

Main:
    Func1()
    Func2()
... FuncN()

而且我想知道我是否可以保存一些行来做这样的事情:

cnx=mariadb.connect(host,user,pass,db)
cursor=cnx.cursor()

def Func1():
    do...Query and something else
def Func2():
    do...Query and something else
....
Main:
    Func1()
    Func2()
    ....FuncN()
    cnx.commit()
    cursor.close()
    cnx.close()

我只是想弄清楚我如何能缩短我的代码,即时通过python 2使用即时通讯...谢谢

答案

在任何编程语言中,您应该连接一次并(可选)断开一次。

您需要某种使用全局变量,单例对象的方式,否则要避免进行两个连接。

在某些情况下,需要保证两个连接,但非常罕见。

通常,如果失败,平台(例如,Web服务器)将执行断开连接。

以上是关于对于MariaDB,是否有必要在我使用的每个函数上创建和关闭连接?的主要内容,如果未能解决你的问题,请参考以下文章

是否有必要在每个 if 条件中写 else 部分?

是否有必要在每个 Activity 中初始化 Firebase Analytics?

为哈希隐藏盐的必要性

在我的 Rails 项目中使用 MariaDB 而不是 MySQL

mysql 5.1 升级 mysql 5.7 升级 mariadb10

在同一台服务器上运行 MariaDB 和 MySQL