`

mysql 数据库性能查看以及一些SQL

阅读更多

 

主要方法: 

show status , show profile ,检查慢查询日志 

 

# 检测执行的sql,具体那个位置比较慢 

SELECT * FROM phone_sts

 

#数据库版本

SELECT  VERSION();

 

#查询sql对资源的占用情况 

SHOW profiles ; 

#查询当前sql执行过程中的时间消耗 

SHOW profile ;

 

 SHOW profile  block io,cpu FOR  QUERY 31969

 

 

 

 

 

 

 #检查profiling是否开启

SHOW VARIABLES LIKE '%pro%';  

#开启

SET profiling=1;  

 

 

SHOW profiles;  

 

 

#c查询各个表占用大小

SELECT   

  table_schema AS 'Db Name',  

  ROUND( SUM( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Db Size (MB)',  

  ROUND( SUM( data_free ) / 1024 / 1024, 3 ) AS 'Free Space (MB)'  

FROM information_schema.tables  

GROUP BY table_schema ;  

 

 

 

 

SHOW DATABASES;    

USE information_schema;   

 

SHOW TABLES;  

 

 # 表超过1000行的

 SELECT CONCAT(table_schema,'.',table_name) AS table_name,table_rows   

 FROM information_schema.tables 

 WHERE table_rows > 1000  

 ORDER BY table_rows DESC;   

 

# 最大的10个表

 SELECT CONCAT(table_schema,'.',table_name) table_name,   

 CONCAT(ROUND(data_length/(1024*1024),2),'M') data_length   

 FROM information_schema.TABLES   

 ORDER BY data_length DESC LIMIT 10; 

 

 

# 查询一个sql语句的时间消耗在哪里

SET @query_id=1 ; 

SELECT state,SUM(duration)  AS total_R,

ROUND(

   100*SUM(duration)/

   (SELECT  SUM(DURATION)

   FROM information_schema.PROFILING

    WHERE query_id=@query_id

 ),2) AS calls , 

 SUM(duration )/COUNT(*) AS "R/Call"

 FROM information_schema.PROFILING

WHERE query_id=@query_id

GROUP BY state 

ORDER BY total_R DESC ; 

 

 

 

 

# 查询一个sql语句的时间消耗在哪里

SET @query_id=31969 ; 

SELECT state,SUM(duration)  AS total_R,

ROUND(

   100*SUM(duration)/

   (SELECT  SUM(DURATION)

   FROM information_schema.PROFILING

 ),2) AS calls , 

 SUM(duration )/COUNT(*) AS "R/Call"

 FROM information_schema.PROFILING

 

GROUP BY state 

ORDER BY total_R DESC ; 

 

 

 

 

 

  

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics