Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中存储数据库连接?_Python_Mysql_Database_Postgresql_Database Performance - Fatal编程技术网

在python中存储数据库连接?

在python中存储数据库连接?,python,mysql,database,postgresql,database-performance,Python,Mysql,Database,Postgresql,Database Performance,我有一个脚本a(python脚本),它打开数据库并执行一些查询,然后关闭数据库连接 我不确定脚本运行多长时间,这完全取决于负载 我还有一个脚本B(shell脚本),它在while循环中运行脚本A。这意味着脚本A将始终运行 我的数据库几乎100%或更多地使用我的CPU。我认为这是因为反复打开和关闭连接 有没有办法提高绩效 我正在使用MYSQL数据库,计划迁移到PostgreSQL 我想将连接存储在某个地方,如果它处于活动状态或创建新连接,则使用相同的连接。我不知道怎么做?有什么想法吗 我认为这是因

我有一个脚本a(python脚本),它打开数据库并执行一些查询,然后关闭数据库连接

我不确定脚本运行多长时间,这完全取决于负载

我还有一个脚本B(shell脚本),它在while循环中运行脚本A。这意味着脚本A将始终运行

我的数据库几乎100%或更多地使用我的CPU。我认为这是因为反复打开和关闭连接

有没有办法提高绩效

我正在使用MYSQL数据库,计划迁移到PostgreSQL

我想将连接存储在某个地方,如果它处于活动状态或创建新连接,则使用相同的连接。我不知道怎么做?有什么想法吗

我认为这是因为反复打开和关闭连接

基于什么证据?是否进行了跟踪/分析以尝试跟踪它

所有Python解释器的启动也不会有帮助。总的来说,这一切听起来效率很低

我个人建议去掉shell脚本包装器;使用相同的Python脚本执行此操作。在外部循环中连接一次,并在每个内部迭代中重复使用相同的连接

您无法“保存”连接。脚本终止时,连接关闭


您可以使用像PgBouncer这样的连接池来减少创建和销毁所有这些连接的开销,但这不如在单个脚本中完成所有操作好。

您可以在脚本B中添加逻辑标志,而不执行a,除非它已完成上一次运行。您可以在启动脚本A后激活该标志,并在结束时将其停用。这将防止重叠和并行执行

这很好,但我想使用Python脚本加载不同的数据。如果我去掉shell脚本,那么我将创建同一文件的两个副本,我认为这不是很有效。@JayakumarBellie Er。。。调整Python脚本以获取命令行参数,这样您就可以使用瘦包装器中的不同文件名来调用它了?您不必复制脚本来更改其行为,您可以使用环境变量、命令行参数、标准输入等。问题在于数据库连接。你将如何管理它?