我有一个用户插入了一些“SELECT SLEEP(2);”查询他们的代码,我试图找出这个查询对数据库性能的影响。查询显示在MySQL慢查询日志中,并且mk-tools报告查询占用了大部分执行时间,但不清楚是否等于实际CPU时间。
答案 0 :(得分:2)
这不是一个忙碌的等待,但它也不是一件有用的事情。
MySQL sleep()函数占用服务器线程的睡眠长度,这意味着它不能做其他(更有用的工作)并在mysql服务器进程中耗尽线程堆栈。这些都不是理想的事情,不应该鼓励。
在某些情况下(取决于上下文),在sleep()休眠时可以保持锁定。
当然sleep()函数对于调试非常有用,但我觉得它不应该出现在生产代码中。
如果客户端线程想要睡眠,它应该自己睡觉,而不是让mysql这样做。