【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】V4.0.0
【复现路径】tidb4.0集群上有2万左右的数据库,其中90%是空数据库(即没有任何表),现在已经执行如下sql查询出了包含表的库,想把没有表的所有空库都删除掉,有什么好的方法
SELECT TABLE_SCHEMA, COUNT(*) AS table_count
FROM information_schema.TABLES
GROUP BY TABLE_SCHEMA ORDER BY TABLE_SCHEMA;
我想知道这2w个库是咋建的?因为啥?
SELECT CONCAT(‘drop database ‘,TABLE_SCHEMA,’;’)
FROM information_schema.TABLES
GROUP BY TABLE_SCHEMA
having COUNT(*)=0
ORDER BY 1;
查询结果是删库脚本,复制出来执行下就行
2 个赞
我也很好奇这些空库怎么创建的
写个shell脚本删除即可
show databases岂不卡死
这。。。敢问这位兄台是啥公司,2W个数据库?
用TiDB的大佬们都是什么级别的人物啊,前有12T单表君,这又冒出个2W库,太顶了
同道中人~
1 个赞
2w个库,厉害
估计以前测试tidb库容量时创建的
你这sql语句应该不行,information_schema.TABLES中出现的库名称都是包含表的库,information_schema.SCHEMATA表才包含所有集群所有库的元数据信息
以前测试随便创建的空库,没有及时删除,遗留问题
我已经查询出所有空库了,其实直接执行drop database 库名 就可以了,把所有的空库放到同一个sql脚本中分别执行drop database 库名 就可以了
没试过,2万条数据,应该不至于
99%都是空库
其实空库比较多
伤不起
遗留问题