
马听,多年 DBA 实战经验,对 MySQL、 Redis、ClickHouse 等数据库有一定了解,专栏《一线数据库工程师带你深入理解 MySQL》、《Redis 运维实战》作者。
1 会话相关的管理语句
1.1 获取活跃会话
SELECT query_id, user, address, elapsed, query FROM system.processes ORDER BY query_id;

SHOW PROCESSLIST;
1.2 kill 查询
kill query where query_id='a410013e-f8f6-4ba7-a23a-48ae43535041';
1.3 获取 mutation 操作
SELECT * FROM system.mutations;
1.4 kill mutation 操作
KILL MUTATION mutation_id = 'trx_id';
2 磁盘空间相关的管理语句
2.1 查看表所使用的空间
SELECT database, table, partition, name part_name, active, bytes_on_disk FROM system.parts where database not in 'system' ORDER BY database, table, partition, name;

2.2 查看库大小
SELECT database, sum(bytes_on_disk) as db_size FROM system.parts GROUP BY database order by db_size desc;

3 性能相关
3.1 慢查询
SELECT user, client_hostname AS host, client_name AS client,formatDateTime(query_start_time, '%T') AS started,query_duration_ms / 1000 AS sec, round(memory_usage / 1048576) AS MEM_MB, result_rows AS RES_CNT,toDecimal32(result_bytes / 1048576, 6) AS RES_MB, read_rows AS R_CNT, round(read_bytes / 1048576) AS R_MB, written_rows AS W_CNT, round(written_bytes / 1048576) AS W_MB, query FROM system.query_log WHERE type= 2 ORDER BY query_duration_ms DESC LIMIT 10

3.2 正在执行的 SQL 概要
select * from system.metrics limit 5;

3.3 累积 SQL 概要
select * from system.events limit 5;

3.4 正在后台运行的概要信息
select * from system.asynchronous_metrics limit 5;

4 复制相关
SELECT database, table, is_leader, total_replicas,active_replicas FROM system.replicas WHERE is_readonly OR is_session_expired OR future_parts > 20 OR parts_to_check > 10 OR queue_size > 20 OR inserts_in_queue > 10 OR log_max_index - log_pointer > 10 OR total_replicas < 2 OR active_replicas < total_replicas;

5 SQL 基准测试
echo "select * from testcluster_shard_1.tc_shard_all;" |clickhouse-benchmark -i 5
-i 5 表示 SQL 执行 5 次



文章转载自悦专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




