暂无图片
怎么查MySQL内存用量,使用量?
我来答
分享
暂无图片 匿名用户
怎么查MySQL内存用量,使用量?

怎么查MySQL内存用量,使用量?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
--全局内存设置
SELECT
ROUND(@@key_buffer_size/1024/1024,2) as KEY_BUF_MB,
ROUND(@@innodb_buffer_pool_size/1024/1024,2) as BUF_POOL ,
ROUND(@@innodb_log_buffer_size/1024/1024,2) as LOG_BUF,
ROUND(@@tmp_table_size/1024/1024,2) as TMP_TABLE,
ROUND(@@read_buffer_size/1024/1024,2) as READ_BUF,
ROUND(@@sort_buffer_size/1024/1024,2) as SORT_BUF,
ROUND(@@join_buffer_size/1024/1024,2) as JOIN_BUF,
ROUND(@@read_rnd_buffer_size/1024/1024,2) as READ_RND_BUF,
ROUND(@@binlog_cache_size/1024/1024,2) as BINLOG_CACHE,
ROUND(@@thread_stack/1024/1024,2) as THREAD_STACK,
(SELECT COUNT(host) FROM information_schema.processlist where command<>'Sleep') as active_connect;



--总内存使用
SELECT SUM(CAST( replace(current_alloc, 'MiB', '') as DECIMAL(10, 2)))
FROM sys.memory_global_by_current_bytes
WHERE current_alloc like '%MiB%' ;



--分事件统计内存
SELECT event_name,
SUM(CAST( replace(current_alloc, 'MiB', '') as DECIMAL(10, 2)))
FROM sys.memory_global_by_current_bytes
WHERE current_alloc like '%MiB%'
GROUP BY event_name
ORDER BY SUM(CAST( replace(current_alloc, 'MiB', '') as DECIMAL(10, 2))) DESC ;


SELECT event_name,
sys.format_bytes(CURRENT_NUMBER_OF_BYTES_USED)
FROM performance_schema.memory_summary_global_by_event_name
ORDER BY CURRENT_NUMBER_OF_BYTES_USED DESC
LIMIT 10;





--账号级别统计
SELECT user,
event_name,
ROUND(current_number_of_bytes_used/1024/1024,2) as MB_CURRENTLY_USED
FROM performance_schema.memory_summary_by_account_by_event_name
WHERE host<> "localhost"
ORDER BY current_number_of_bytes_used DESC
LIMIT 10;



--线程对应sql语句,内存使用统计


SELECT tm.thread_id,ts.name,ts.type,ts.PROCESSLIST_USER,ts.PROCESSLIST_ID,ts.THREAD_OS_ID,
tm.event_name,
sys.format_bytes(CURRENT_NUMBER_OF_BYTES_USED) 
FROM performance_schema.memory_summary_by_thread_by_event_name tm
left join performance_schema.threads ts on ts.thread_id = tm.thread_id
ORDER BY CURRENT_NUMBER_OF_BYTES_USED DESC
LIMIT 20;


SELECT m.thread_id as thread_id,
m.user,
esc.DIGEST_TEXT,
m.current_allocated,
m.total_allocated
FROM sys.memory_by_thread_by_current_bytes m,
performance_schema.events_statements_current esc
WHERE m.`thread_id`= esc.THREAD_ID;


--内存事件
SELECT EVENT_NAME,ROUND(COUNT_ALLOC/1024/1024,2) AS COUNT_ALLOC_MB,
ROUND(COUNT_FREE/1024/1024,2) AS COUNT_FREE,
ROUND(SUM_NUMBER_OF_BYTES_ALLOC/1024/1024,2) AS SUM_NUMBER_OF_BYTES_ALLOC,
ROUND(COUNT_ALLOC/1024/1024,2) AS COUNT_ALLOC_MB,
ROUND(COUNT_ALLOC/1024/1024,2) AS COUNT_ALLOC_MB,
ROUND(COUNT_ALLOC/1024/1024,2) AS COUNT_ALLOC_MB,
ROUND(COUNT_ALLOC/1024/1024,2) AS COUNT_ALLOC_MB,
FROM performance_schema.memory_summary_global_by_event_name
WHERE EVENT_NAME LIKE 'memory/%'
ORDER BY CURRENT_NUMBER_OF_BYTES_USED DESC;



select * from sys.x$memory_by_host_by_current_bytes;
select * from sys.x$memory_by_thread_by_current_bytes;
select * from sys.x$memory_by_user_by_current_bytes;
select * from sys.x$memory_global_by_current_bytes;
select * from sys.x$memory_global_total;
select * from performance_schema.memory_summary_by_account_by_event_name;
select * from performance_schema.memory_summary_by_host_by_event_name;
select * from performance_schema.memory_summary_by_thread_by_event_name;
select * from performance_schema.memory_summary_by_user_by_event_name;
select * from performance_schema.memory_summary_global_by_event_name;
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
Uncopyrightable

 select event_name,current_alloc from sys.memory_global_by_current_bytes limit 10;

感觉没有必要手动查,现在mysql的监控工具很多吧;

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
mysql5.7 和mysql8 的log_update的参数是不是去掉了?
回答 2
你可以执行mysqldverbosehelp查找下有没有你要的参数信息,也可以到官方文档里面找https://dev.mysql.com/doc/refman/8.0/en/serversystemv
ddl没有阻塞dml的问题
回答 1
在你描述的场景中,ALTERTABLE操作在sess1中执行,同时sess2尝试在tt表中插入数据。在MySQL5.7中,由于ALTERTABLE的实现方式,sess2的INSERT操作可能不会被立即
openGauss数据库从Oracle全量迁移至MySQL使用的是什么工具?
回答 3
mtk嘎嘎好用
如何在 Mysql 中设置数据唯一性?
回答 2
已采纳
给所在的列添加唯一约束就可以了。
rc下,单独执行每个只有1个行锁,为啥2个会话会发生锁等待?
回答 1
因为没有索引,RC是扫描后放弃掉不符合要求退化为行锁。当还没有退化的时候,就已拿不到锁了。所以就会堵塞。
MySQL 中间件用哪个做负载均衡?
回答 2
mysqlrouter吧,配置和使用都很方便
请问mysql enterprise backup备份工具备份原理?备份时加什么锁?如何保障数据一致性?是否会因为有导致ddl备份失败?
回答 1
已采纳
MySQLEnterpriseBackup是MySQL官方提供的备份和恢复工具,其备份原理是通过在备份期间使用快照功能,以在同一时间点对数据库进行快速、可靠的备份。在备份过程中,MySQLEnterp
用mysqlbackup恢复数据,为什么会在跟原环境一样的路径下恢复出binlog?
回答 1
已采纳
物理备份就是全目录拷贝。
mysql数据库find_in_set函数如何优化
回答 5
可以看下这篇文章,可以解决你的问题https://blog.csdn.net/StreetWalker/article/details/88573195
用postgresql远程mysql怎么把数据保存到本地?
回答 3
了解一下mysqlfdw