如何快速导出表结构

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】5.4
集群中有大量分区表,如何快速导出表结构?

我一般都是通过第三方工具导出,比如navicat

这个工具导出快吗,和mysqldump导出有什么区别

没什么区别,都是导出sql语句。

想问如何快速导出,目前导出比较慢

:thinking:只导表结构应该不慢啊?是不是还导出数据了?或者是不是其他地方限制了?

可以用dumpling --no-data
mysqldump应该也可以的吧

navicat导出来也不慢啊,你是不是数据库很大,表的规模很大

show create table 不慢啊,你有几万表吗

dumpling
-h10.0..
-uroot
-P4000
–filetype sql
–complete-insert
-p_31t^XJ9+YuKD647-C
-B test
–no-data
-r 20000 -F256MiB
–threads 32
-o /data/back/tidb_54

/data/servers/mysql/bin/mysqldump
–socket=“/data/mysql/tmp/mysql.sock”
–host=“10.0..
–port=4000
–user=“root”
–password=“_31t^XJ9+YuKD647-C”
–default-character-set=“utf8”
–skip-triggers --hex-blob --complete-insert --skip-tz-utc --set-gtid-purged=OFF
–no-data
–databases ‘test’ \

/data/back/tidb_test_54.sql

还是mysqldump速度快点

使用 Dumpling 导出数据 | PingCAP 文档中心

刚好最近在做表结构备份相关工作,我用的 mydumper 可以并行呢,挺快的

mysqldump

需要导出很多表结构用dumpling,少量表用show create table即可。

mysqldump就挺快

直接用工具导出,或者呢,自己维护的项目都是有概念模型的,用概念模型导出DDL语句是必备的功能。

Dbeaver,Navicat都可以的

这个用mysqldump 直接搞就行

一条shell搞定:
mysql -hxx -Pxx -uxx -pxx -Dxx -NBe “show tables” |awk ‘{print “show create table “$1”;”}’ |mysql -hxx -Pxx -uxx -pxx -Dxx -NBe

不应该是用dumpling就可以了吗? ./dumpling -h <tidb_host> -P <tidb_port> -u -p -B <database_name> --no-data --output <output_directory>
对于大量的分区表,可以考虑使用 --threads 参数来增加并发度,提高导出速度