这是因为mytable的等待状态。 eggyal给了我使用show processlist
的线索。这表明:
+-----+---------+-----------------+----------------+---------+------+---------------------------------+----------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+---------+-----------------+----------------+---------+------+---------------------------------+----------------------------------------------------+
| 349 | root | localhost:56612 | mydb | Query | 3582 | Waiting for table metadata lock | ALTER TABLE `mytable` ADD INDEX(`fk_to_02`) |
我种植了kill 349
终止在等待链,现在EXPLAIN语句按预期工作。
另一方面:你的查询应该做什么?如果没有'ORDER BY'子句,结果将是不确定的...... – eggyal
@eggyal让我们通过id desc命令。但是这个查询也冻结了。我有另一个表格只有100个记录,它的工作原理。 – jerrymouse
当一个连接正在运行这样一个冻结的查询时,另一个连接在'SHOW PROCESSLIST'下显示的连接是什么? – eggyal