调试MySQ一个Lbug,现象如下:
1 客户端1,执行了一条SQL命令: execute s;
其中,'s' 由prepare语句定义
2 命令开始执行后,服务器在运行(察看进程存在,并不独有内存变化,或高或低,表明内存有分配和释放动作)
3 客户端1没有接受到反馈, 停在回车键被按下之后没有回现的状态.
4 开启新的客户端2, 执行命令: show processlist;
看到如下内容:

"State"列暴露了问题所在,为什么服务器看似没有反应,原来是发生了"System lock".
5 一条SQL命令之后,MySQL服务器没有反应,咱们办? ---第一个可用的方法,就是执行第四步的命令.
MySQL官方手册说:
SHOW PROCESSLIST shows you which threads are running. You can also get this information from the INFORMATION_SCHEMA PROCESSLIST table or the mysqladmin processlist command.
而"State"列的值,可能有哪些? 更多内容参考:官方手册 8.13.5.2 General Thread States