Table size

SELECT table_name AS 表名, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 2) AS 表大小(GB), ROUND(DATA_FREE / 1024 / 1024 / 1024, 2) AS 碎片/未释放空间(GB) FROM information_schema.TABLES WHERE table_name = 'live_data_file_increment_4_4' AND table_schema = DATABASE();

SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_current WHERE EVENT_NAME LIKE '%alter%'

SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; SHOW VARIABLES LIKE 'key_buffer_size'; SHOW VARIABLES LIKE 'max_connections'; -- 最大连接数(过高会导致线程内存累积) SHOW VARIABLES LIKE 'tmp_table_size'; -- 内存临时表上限

SELECT (@@read_buffer_size + @@sort_buffer_size + @@join_buffer_size) / (1024 * 1024) AS per_thread_mb;

SELECT (@@read_buffer_size + @@sort_buffer_size + @@join_buffer_size) / (1024 * 1024) AS per_thread_mb; SHOW GLOBAL STATUS LIKE 'Threads_running'; -- 活跃线程数

-- 显示占用最高的模块(如InnoDB缓冲池、临时表)

SELECT event_name, current_alloc 
FROM sys.memory_global_by_current_bytes 
LIMIT 20;
select sys.format_bytes(SUM(current_alloc)) FROM sys.x$memory_global_by_current_bytes;

各个模块的分别占用的内存

SELECT SUBSTRING_INDEX(event_name,'/', 2 ) AS
       code_area, sys.format_bytes(SUM(current_alloc))
       AS current_alloc
       FROM sys.x$memory_global_by_current_bytes
       GROUP BY SUBSTRING_INDEX(event_name,'/', 2 )
       ORDER BY SUM(current_alloc) DESC;

监控InnoDB缓冲池利用率: SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages%';

SET GLOBAL innodb_buffer_pool_size =

连接占用的内存 https://mp.weixin.qq.com/s?__biz=MjM5NzAzMTY4NQ==&mid=2653939777&idx=1&sn=da6b97b8d302b0b910fa52147e0f6854&chksm=bd3b722b8a4cfb3d3e974909558b805ca7200ddaeeefc0b8b04a5562543202a0df40b7d4365e#rd

pmap -x $(pgrep mysqld) | grep -i "anon" | sort -nrk3

查看 database size

selectname,FILE_SIZE/1024/1024/1024as  GB from information_schema.INNODB_TABLESPACES wherename='test/t1';

SELECT table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)', sum(truncate(DATA_FREE/1024/1024, 2)) as '碎片占用(MB)' from information_schema.tables group by table_schema order by sum(data_length) desc, sum(index_length) desc;

查看 table size

SELECT table_name AS 表名, ROUND((DATA_LENGTH) / 1024 / 1024 / 1024, 2) AS 表大小(GB), ROUND((INDEX_LENGTH) / 1024 / 1024 / 1024, 2) AS 索引大小(GB), ROUND(DATA_FREE / 1024 / 1024 / 1024, 2) AS 碎片/未释放空间(GB) FROM information_schema.TABLES where table_schema = DATABASE();

查看 optimize table 事件

SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_current;

optimize table xx 后查看进度 SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_current WHERE EVENT_NAME LIKE 'stage/innodb/alter%';

SELECT * FROM sys.innodb_lock_waits\G