记录一次线上慢查询解决

  今天早上公司数据库服务器top查看,cpu 99.8% load average 123,非常严重,首先想到的是mysql肯定是死锁了,因为我入职不久,对很多设计不是很清楚,也不知道是哪张表,翻阅文章后是如下解决的:

查询比较久的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX

发现sql 

SELECT EndDate FROM StockUpDown WHERE StockID = '002392' AND MarketID = 1 ORDER BY EndDate DESC LIMIT 1

一直等待中,查询需要9s,于是查看表,加入了索引,查询立马0.11s,于是解决了。

查看正在锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

相关推荐