表上的sql select查询没有完成

时间:2011-04-14 18:14:37

标签: mysql blocking

我遇到了从名为nodes的表中读取数据这个奇怪的问题。任何选择查询都将永远执行。我甚至不知道它最终是否会返回,但它似乎不是那样的。之前很快就回来了。据我所知,没有任何改变。没有插入新记录,也没有删除任何记录。我试过几个查询。

select count(1) from  nodes;

select node_id, type from nodes where node_id='abc';
如果有帮助,

node_id是节点表中的主键。前一天所有选择的查询都会立即返回,如0.01ms等。

我的猜测是,某种程度上会在桌面上放置一个锁,阻止我的查询继续进行。 我很感激,如果有人可以让我知道或指出如何在MYSQL 5.0.90-log FreeBSD中查找特定表上的锁。

还有什么其他可能性?

非常感谢。

4 个答案:

答案 0 :(得分:2)

我将此问题上报给了我们小组的高级职员。他认为当mysqld试图登录时,文件系统已经变满了。这可以通过停止mysqld并在具有大量可用空间的不同文件系统上创建指向文件的符号链接来解决。启动mysqld并且所有选择的查询都在不阻塞地运行。

答案 1 :(得分:1)

首先尝试重启sql服务,如果没有帮助,重建索引。

答案 2 :(得分:0)

可能是索引被破坏了。尝试重建所有索引。

答案 3 :(得分:0)

尝试查看您服务器上的进程,也许您必须杀死其中某人以释放该表。

以下是一个有趣的链接: http://mysqlpreacher.com/wordpress/2009/07/mysql-processlist-showkill-processes/