执行 SQL 脚本时,mysqlnt.exe 占用 50% 的 CPU。即使没有访问,CPU 使用率也不会下降。有什么解决办法吗?
答案1
您很可能有一台双核机器,并且某个 MySQL 会话使用了其中一个核心/处理器的 100%。
打开 MySQL 命令行客户端,并发出
SHOW FULL PROCESSLIST
查看当前正在运行的会话、它们在做什么以及它们运行了多长时间。如果您知道谁是罪魁祸首,并且可以安全地中止它,请发出
KILL ###
其中 ### 是会话编号(可在 SHOW PROCESSLIST 输出的 Id 列中找到)
答案2
最好的方法是诊断哪个查询导致了问题,您可能应该对其进行优化并在有问题的表上添加一些索引。
用于SHOW FULL PROCESSLIST
获取进程列表,然后运行它以EXPLAIN
查看为什么需要这么长时间。
答案3
尝试在您的表上建立索引 - 您还需要对您的查询进行一些性能调整 - 这样可以使其更快:-)优化它 - 我同意 Michal Chihar 的观点!