在通过python脚本执行mysql表更新操作时,想了解更新的具体情况。于是show processlist;了一下,结果发现该脚本所属的进程处于Sleep状态。再次执行show processlist;命令,进程又恢复工作状态了。如下图所示:

如此反复,说明该进程在执行mysql更新或查询操作后未及时释放资源。粗略想了下,应该mysql连接处于Sleep状态时,python脚本应该还在计算某些数据,而还未来得及close()连接或执行下一次表操作。
问了一下前辈和搜了一下资料,发现事实基本是这样的。由于在数据库获得连接期间,反复进行计算数据和更新表数据等两大步工作,因此mysql执行状态便反复处于Sleep与工作状态。
虽然是比较正常的现象,但如果Sleep的时间较长,应该会造成查询等操作效率上的损失,要考虑优化。
参考资料:mysql执行状态分析

本文探讨了使用Python脚本执行MySQL表更新操作时,资源释放过程中可能出现的问题,分析了MySQL执行状态反复处于Sleep与工作状态的原因,并提供了优化建议以减少查询操作效率损失。
4320

被折叠的 条评论
为什么被折叠?



