互联网服务MySQLMySQL 5.7

mysql如何统计某个库中的读写最频繁的前5张表?

mysql如何统计某个库中的读写最频繁的前5张表?
5.7版本中

参与13

3同行回答

liucj2004liucj2004  其它 , undefined
读的话需要开启general log并进行监控写的话,分析binlog即可读的话,个人推荐可以从解决慢查询开始。显示全部

读的话需要开启general log并进行监控
写的话,分析binlog即可

读的话,个人推荐可以从解决慢查询开始。

收起
农业其它 · 2017-08-21
浏览3572
彬彬 邀答
renou2012renou2012  数据库管理员 , KE
可以关注以下两个视图sys.io_global_by_file_by_bytes、sys.x$io_global_by_file_by_bytes或者表performance_schema.file_summary_by_instancesys.io_global_by_file_by_bytesFieldTypeNullKeyDefaultExtrafilevarchar(512)YES NULL count_readbigint(20) unsignedNO NU...显示全部

可以关注以下两个视图sys.io_global_by_file_by_bytes、sys.x$io_global_by_file_by_bytes
或者表performance_schema.file_summary_by_instance

sys.io_global_by_file_by_bytes
FieldTypeNullKeyDefaultExtra
filevarchar(512)YES NULL
count_readbigint(20) unsignedNO NULL
total_readtextYES NULL
avg_readtextYES NULL
count_writebigint(20) unsignedNO NULL
total_writtentextYES NULL
avg_writetextYES NULL
totaltextYES NULL
write_pctdecimal(26,2)NO 0.00

sys.x$io_global_by_file_by_bytes
FieldTypeNullKeyDefaultExtra
filevarchar(512)NO NULL
count_readbigint(20) unsignedNO NULL
total_readbigint(20)NO NULL
avg_readdecimal(23,4)NO 0.0000
count_writebigint(20) unsignedNO NULL
total_writtenbigint(20)NO NULL
avg_writedecimal(23,4)NO 0.0000
totalbigint(21)NO 0
write_pctdecimal(26,2)NO 0.00

performance_schema.file_summary_by_instance
FieldTypeNullKeyDefaultExtra
FILE_NAMEvarchar(512)NO NULL
EVENT_NAMEvarchar(128)NO NULL
OBJECT_INSTANCE_BEGINbigint(20) unsignedNO NULL
COUNT_STARbigint(20) unsignedNO NULL
SUM_TIMER_WAITbigint(20) unsignedNO NULL
MIN_TIMER_WAITbigint(20) unsignedNO NULL
AVG_TIMER_WAITbigint(20) unsignedNO NULL
MAX_TIMER_WAITbigint(20) unsignedNO NULL
COUNT_READbigint(20) unsignedNO NULL
SUM_TIMER_READbigint(20) unsignedNO NULL
MIN_TIMER_READbigint(20) unsignedNO NULL
AVG_TIMER_READbigint(20) unsignedNO NULL
MAX_TIMER_READbigint(20) unsignedNO NULL
SUM_NUMBER_OF_BYTES_READbigint(20)NO NULL
COUNT_WRITEbigint(20) unsignedNO NULL
SUM_TIMER_WRITEbigint(20) unsignedNO NULL
MIN_TIMER_WRITEbigint(20) unsignedNO NULL
AVG_TIMER_WRITEbigint(20) unsignedNO NULL
MAX_TIMER_WRITEbigint(20) unsignedNO NULL
SUM_NUMBER_OF_BYTES_WRITEbigint(20)NO NULL
COUNT_MISCbigint(20) unsignedNO NULL
SUM_TIMER_MISCbigint(20) unsignedNO NULL
MIN_TIMER_MISCbigint(20) unsignedNO NULL
AVG_TIMER_MISCbigint(20) unsignedNO NULL
MAX_TIMER_MISCbigint(20) unsignedNO NULL

更多参考
https://dev.mysql.com/doc/refman/5.7/en/sys-io-global-by-file-by-bytes.html

收起
金融其它 · 2017-08-23
浏览3811
彬彬 邀答
y18511664518y18511664518  技术总监 , 长城超云
一、MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句1,slow_query_log这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。2,long_query_time当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。3,slow_query_log_file记录日志的文件名...显示全部

一、MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句
1,slow_query_log
这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
2,long_query_time
当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
3,slow_query_log_file
记录日志的文件名。
4,log_queries_not_using_indexes
这个参数设置为ON,可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快。
二、检测mysql中sql语句的效率的方法
1、通过查询日志
(1)、Windows下开启MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上
代码如下
log-slow-queries = F:/MySQL/log/mysqlslowquery。log
long_query_time = 2
(2)、Linux下启用MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上
代码如下
log-slow-queries=/data/mysqldata/slowquery。log
long_query_time=2
说明
log-slow-queries = F:/MySQL/log/mysqlslowquery。
为慢查询日志存放的位置,一般这个目录要有MySQL的运行帐号的可写权限,一般都将这个目录设置为MySQL的数据存放目录;
long_query_time=2中的2表示查询超过两秒才记录;
2.show processlist 命令
SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。

收起
金融其它 · 2017-08-22
浏览3546
彬彬 邀答

提问者

nanjing_2013
系统架构师北京卓望

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-08-21
  • 关注会员:4 人
  • 问题浏览:4727
  • 最近回答:2017-08-23
  • X社区推广