Python Mysql连接,一个还是多个?
我正在用python编写一个脚本,它基本上查询WMI并更新mysql数据库中的信息。其中之一就是“写你需要的东西”来学习编程练习 如果脚本中有东西断开,例如,远程计算机关闭,它就被分离成函数。 查询一些WMI数据Python Mysql连接,一个还是多个?,python,mysql,Python,Mysql,我正在用python编写一个脚本,它基本上查询WMI并更新mysql数据库中的信息。其中之一就是“写你需要的东西”来学习编程练习 如果脚本中有东西断开,例如,远程计算机关闭,它就被分离成函数。 查询一些WMI数据 将其更新到数据库 查询其他WMI数据 将其更新到数据库中 最好在开始时打开一个mysql连接,然后让它保持打开状态,还是在每次更新后关闭连接 似乎一个连接将使用更少的资源。(虽然我只是在学习,所以这是一个完整的猜测。)然而,在每次更新中打开和关闭连接似乎更“整洁”。函数将更加独立,而不
将其更新到数据库
查询其他WMI数据
将其更新到数据库中 最好在开始时打开一个mysql连接,然后让它保持打开状态,还是在每次更新后关闭连接
似乎一个连接将使用更少的资源。(虽然我只是在学习,所以这是一个完整的猜测。)然而,在每次更新中打开和关闭连接似乎更“整洁”。函数将更加独立,而不是依赖于函数外部的代码。我认为没有“更好”的解决方案。现在考虑资源还为时过早。而且由于wmi非常慢(与sql连接相比),所以db不是问题 让它工作吧。然后让它变得更好
在这里使用开放连接的好处是,“自然”解决方案是使用对象,而不仅仅是函数。因此,这将是一次学习体验(如果您正在学习python而不是mysql)。请思考以下场景:
for dataItem in dataSet:
update(dataItem)
如果在update函数中打开和关闭连接,并且数据集包含1000个项目,则会破坏应用程序的性能并破坏任何事务功能
更好的方法是打开一个连接并将其传递给update函数。您甚至可以让更新函数调用某种连接管理器。如果要定期执行单个更新,请围绕更新函数调用打开和关闭连接
通过这种方式,您将能够使用函数来封装数据操作,并能够在它们之间共享连接
但是,这种方法不适合执行批量插入或更新。“但是,在每次更新时打开和关闭连接似乎更‘整洁’。”
这也是一个巨大的开销——而且没有实际的好处
创建和处理连接的成本相对较高。更重要的是,真正的原因是什么?它是如何改进、简化和澄清的
通常,大多数应用程序都有一个从开始到停止的连接 S.Lott和Igal Serban答案中的有用线索。我认为您应该首先了解您的实际需求和相应的代码 只是说一个不同的策略;有些应用程序保留一个数据库(或其他)连接池,如果发生事务,只需从该池中提取一个即可。很明显,这种应用程序只需要一个连接。但您仍然可以保留一个连接池并应用以下连接:
- 每当需要数据库事务时,就会从池中提取连接,并在最后返回
- (可选)连接在一段时间后过期(并替换为新连接)
- (可选)连接在使用一定量后过期
- (可选)池可以在将连接移交给程序之前检查(通过发送廉价查询)连接是否处于活动状态