2009-10-16 73 views
4

我注意到我们的MySQL服务器上的'show processlist'表示'系统锁定'状态中有很多线程,通常后面是'锁定',后者我期望我们在MyISAM表的更新/插入之后有一些选择锁定。MySQL中的“系统锁定”+ MyISAM

但是“系统锁定”显示的不仅仅是“锁定”(根据探查器有时最多会添加2秒钟到一个简单的选择),我不明白它的含义。我找不到有关系统锁定的更多信息,但那里主要讨论了多个mysqld访问同一个db的情况,这不是我的情况。此外,我的'跳过外部锁定'变量是错误的。

任何人都有这方面的经验?

附录:

如果有帮助,我倾向于用约3比1 ProcessList中看到更多的系统锁比表锁(“锁定”)。是否有可能出于某种原因为正常表锁定输出“系统锁定”?

+0

您应该期望看到更多的系统锁定,然后锁定表格。在mysql手册中有一页介绍了如何使用文件锁。 – longneck 2009-10-19 20:03:39

+0

我希望我不会忽略它,但是你有链接吗?在手册中搜索“系统锁定”和“文件锁定”我分别找到了粗略的信息和没有信息。 – Yash 2009-10-20 22:14:55

回答

1

你会看到这个状态,而mysql正在等待操作系统采取一个MySQL所要求的锁。你的服务器缺少文件句柄?

+0

这可以使用以下方法进行检查:ulimit -n – Jeremy 2009-10-16 17:56:25

+0

感谢您的快速回复。如果ulimit -n是关键限制,那么我认为这不是它本身。为了确保我们提高了方向,我们仍然得到系统锁定。 – Yash 2009-10-16 20:15:08