Mysql 性能查询,锁表
-- 查看 哪张表被锁
show OPEN TABLES where In_use > 0
show open tables from wdgjyun_daerwei;
-- 查询所有进行的线程,包括线程的状态,是否锁表等。
show full processlist
select * from information_schema.processlist
-- 查看语句的执行计划
desc /explain
-- 查看历史的死锁,事务
show engine innodb status
-- 查询还在执行的事务
select * from information_schema.innodb_trx
-- 查询只在执行的锁
select * from information_schema.INNODB_LOCKS
select * from information_schema.INNODB_LOCK_WAITS
-- show profiles 定位一条语句的I/O消耗和CPU消耗
set profiling=1;
执行SQL语句
show profiles;
set profiling=0;
show profile for query ;
-- 通过 trace 分析优化器如何选择执行计划
optimizer_trace 跟踪执行的语句的解析优化执行的过程
set optimizer_trace="enabled=on";
select ****
SELECT * FROM information_schema.OPTIMIZER_TRACE;
SET optimizer_trace="enabled=off";
http://blog.itpub.net/28218939/viewspace-2658978/
https://dev.mysql.com/doc/internals/en/tracing-example.html
-- 分析表 和检查表,优化表
Analyze table table1,table2..
Check table table1,table2..
optimize table table1,table2..
alter table table1 engine = innodb;