MySQL的SLEEP()函数是忙碌等待吗?

时间:2011-12-26 15:24:19

标签: mysql

我有一个用户插入了一些“SELECT SLEEP(2);”查询他们的代码,我试图找出这个查询对数据库性能的影响。查询显示在MySQL慢查询日志中,并且mk-tools报告查询占用了大部分执行时间,但不清楚是否等于实际CPU时间。

1 个答案:

答案 0 :(得分:2)

这不是一个忙碌的等待,但它也不是一件有用的事情。

MySQL sleep()函数占用服务器线程的睡眠长度,这意味着它不能做其他(更有用的工作)并在mysql服务器进程中耗尽线程堆栈。这些都不是理想的事情,不应该鼓励。

在某些情况下(取决于上下文),在sleep()休眠时可以保持锁定。

当然sleep()函数对于调试非常有用,但我觉得它不应该出现在生产代码中。

如果客户端线程想要睡眠,它应该自己睡觉,而不是让mysql这样做。