【mysql】关于mysql执行时的Sleep状态

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


    如此反复,说明该进程在执行mysql更新或查询操作后未及时释放资源。粗略想了下,应该mysql连接处于Sleep状态时,python脚本应该还在计算某些数据,而还未来得及close()连接或执行下一次表操作。

    问了一下前辈和搜了一下资料,发现事实基本是这样的。由于在数据库获得连接期间,反复进行计算数据和更新表数据等两大步工作,因此mysql执行状态便反复处于Sleep与工作状态。

    虽然是比较正常的现象,但如果Sleep的时间较长,应该会造成查询等操作效率上的损失,要考虑优化。

参考资料:mysql执行状态分析

你可能感兴趣的:(MySQL,MySQL)