Mysql“SELECT *”挂起

时间:2012-05-30 21:11:49

标签: mysql

我的MySQL数据库有两个数据库,我们称之为applebananaapple有一个表格,我们称之为mydata

> use apple;
Database changed

> SELECT * FROM mydata;
...
3379 rows in set (0.00 sec)

> SELECT mydata.* FROM mydata;
...
3379 rows in set (0.00 sec)

当我在同一个数据库中使用SELECT *时,一切正常。一旦我切换数据库,我就会出现奇怪的行为。

> use banana;
Database changed

> SELECT mydata.* FROM apple.mydata;
...
3379 rows in set (0.00 sec)

> SELECT * FROM apple.mydata;
[hangs!]

为什么会这样? MySQL认为*意味着它会挂起,而mydata.*更具体并且不会导致挂起。

注意:

  • 根据'SHOW FULL PROCESSLIST',运行挂起查询的连接没有运行命令,但处于“睡眠”状态。
  • 这个问题是断断续续的:我的查询做了一年半,然后几个小时前就开始冻结了。五分钟前,他们停止了冻结,目前没有问题。

为什么不合格的SELECT *无法运行,而合格的SELECT mydata.*会立即运行?

谢谢,

乔纳森

0 个答案:

没有答案