mysql使用myisam的时候锁表比较多,尤其有慢查询的时候,造成死锁.这时需要手动kill掉locked的process.使他释放.
我们使用Show innodb status检查引擎状态,以发现了死锁问题。
(以前我都是重起服务)..惭愧啊
演示:(id 7是我用python 来连过来的一个会话,虽然是状态是sleep,为了演示,干掉他)
mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 7 | root | localhost | yy | Sleep | 154 | | NULL |
| 8 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
2 rows in set (0.00 sec)
mysql> kill 7
-> ;
mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 8 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)
分享到:
相关推荐
然而,虽然 `KILL` 命令能快速解决问题,但更好的策略是预防死锁的发生。可以通过优化事务处理、设置合适的事务隔离级别、避免长时间锁定数据等方式来减少死锁的可能性。此外,使用 `SHOW ENGINE INNODB STATUS` ...
KILL [process_id]; ``` 请注意,以上操作应谨慎执行,尤其是KILL命令,因为它可能会导致未保存的数据丢失或事务回滚。 四、预防措施 1. **定期清理和维护**:定期执行数据库维护任务,如更新统计信息、清理无用...
- 死锁检测:当线程陷入死锁时,`processlist`可以帮助定位死锁线程的ID。 - 线程池:MySQL的线程池优化可以减少线程创建和销毁的开销,提高服务响应速度。 - 内存使用:线程独享内存分配对系统内存使用有直接...
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统...