我注意到我们的MySQL服务器上的'show processlist'表示很多线程处于'系统锁'状态,后面通常只是'锁定',后者是我所期望的,因为我们有一些选择锁定更新/在MyISAM表上插入。
但是“系统锁定”显示的不仅仅是“锁定”(根据探查器,有时会为简单的选择添加最多2秒),而且我不明白它的含义。我在网络上找不到关于系统锁的更多信息,但是主要讨论了多个mysqld访问同一个数据库的情况,这不是我的情况。此外,我的'skip external locking'变量是错误的。
任何人都有这方面的经验吗?
附录:
如果它有帮助,我倾向于在进程列表中看到比表锁('Locked')更多的系统锁大约3比1。是否有可能出于某种原因'系统锁定'正在输出有效的常规表锁定?
答案 0 :(得分:1)
当mysql正在等待操作系统获取mysql请求的锁时,您将看到此状态。你的服务器在文件句柄上是否稀缺?