【TiDBer 唠嗑茶话会 48】非正式 TiDB相关 SQL 脚本征集大赛!

相信大家身为运维大师 & 程序大佬都有自己的一套备忘录,记录自己比较常用的一些脚本~现在!是时候!亮出家底了!
本期非正式脚本征集大赛,欢迎各位 TiDBer 来秀出自己压箱底的 TiDB 相关 SQL 脚本 :sparkles:有什么实用/便捷/强推的脚本,欢迎大家一起开秀~
大赛奖励: 上榜之后的 TiDB 社区 SQL 脚本大全 & 100积分~

本期话题:

SQL 脚本征集,欢迎各位 TiDBer 来秀出自己觉得实用/便捷/强推的 TiDB 相关 SQL 脚本~

举个栗子:来自 @我是咖啡哥

查看表的元数据
show stats_meta where db_name like ‘%sbtest%’;

活动奖励:

秀出自己推荐的 TiDB 相关 SQL 脚本的 TiDBer 即可获得100积分奖励~

活动时间:

2022.11.25-2022.12.02

show stats_healthy​;
analyze table table-name;

show stats_meta where db_name like ‘%sbtest%’;
收藏 :grinning:

:heart: :heart: :heart:

-- 缓存表:
alter table xxx cache|nocache;

手里没几个SQL,都不好意思说自己是DBA :grinning:
来来来,欢迎大家补充、点赞、收藏。

TiDB常用SQL

再补充一个:

TSO时间转换

方式一:使用函数TIDB_PARSE_TSO

SELECT TIDB_PARSE_TSO(437447897305317376);
+------------------------------------+
| TIDB_PARSE_TSO(437447897305317376) |
+------------------------------------+
| 2022-11-18 08:28:17.704000         |
+------------------------------------+
1 row in set (0.25 sec)

方法二:使用pd-ctl

~$ tiup ctl:v6.4.0 pd -i -u http://pdip:2379
Starting component `ctl`: /Users/xxx/.tiup/components/ctl/v6.4.0/ctl pd -i -u http://pdip:2379
» tso 437447897305317376
system:  2022-11-18 08:28:17.704 +0800 CST
logic:   0

purge binary logs to ‘binlog.xxxx’;

show

select VARIABLE_NAME, VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME like “tikv_gc%”;
查询tikv_gc_life_time和tikv_gc_safe_point默认时长

select VARIABLE_NAME, VARIABLE_VALUE from mysql.tidb where VARIABLE_NAME like “tikv_gc%”;
最常用的。

show create table 用的最多,我不是dba

搜索某个用户的TopN慢查询

select query_time,query,user
from information_schema.slow_query
where is_internal=false -- 排除 TiDB 内部的慢查询 SQL
and user = "user1" -- 查找的用户名
order by query_time desc
limit 2;

SELECT time,instance,left(message,150) FROM cluster_log WHERE message LIKE ‘%ddl%job%ID.80%’ AND type=‘tidb’

最近刚一直再用的,统计间隔5分钟的数据
SELECT concat(date_format(create_time,‘%Y-%m-%d %H:’),floor(date_format(create_time,‘%i’)/5)),count(*)
FROM jcxx
GROUP BY 1;

反解析digest成SQL文本
select tidb_decode_sql_digests(‘[“xxxxx”]’);

show stats_healthy​ where table name=XXXX;
show stats_meta where table name=XXXX;

贡献摘录


如果不涉及分区表用下面的方式查看表的使用情况:

select TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS,
(DATA_LENGTH+INDEX_LENGTH)/1024/1024/1024 as table_size from tables order by table_size 
desc limit 20;

另外partition表提供了分区表和非分区表的资源使用情况(我们使用分区表较多):

select TABLE_SCHEMA,TABLE_NAME,PARTITION_NAME,TABLE_ROWS,
(DATA_LENGTH+INDEX_LENGTH)/1024/1024/1024 as table_size from 
information_schema.PARTITIONS order by table_size desc limit 20;

在查询分析器中看配置文件参数:show config

SHOW CONFIG 语句用于展示 TiDB 各个组件当前正在应用的配置,请注意,配置与系统变量作用于不同维度,请不要混淆,如果希望获取系统变量信息,请使用 SHOW VARIABLES 语法。

#查找读流量排名前10的热点region
SELECT DISTINCT region_id FROM INFORMATION_SCHEMA.tikv_region_status WHERE ORDER BY READ_BYTES DESC limit 10