# `Dumpling` Optimization for `TiDB`

+ Support configuring the memory limit of a single TiDB SQL statement
+ If Dumpling can connect directly to PD, Dumpling supports automatic adjustment of TiDB GC time for TiDB v4.0.0 and later versions
+ Use hidden column **`_tidb_rowid`** to optimize the performance of concurrent data export from a single table
+ You can set the value of **`tidb_snapshot`** by **`--consistency snapshot`** to specify the time point of the data backup.

----------------------------------------------------------------------------------------------------------------------------
`PingCAP` previously maintained a fork of the `mydumper` project with enhancements specific to `TiDB`. This fork has since been replaced by `Dumpling`, which has been rewritten in `Go`, and supports more optimizations that are specific to `TiDB`. It is strongly recommended that you use `Dumpling` instead of `mydumper`.

On this slides, we listed a few optimizations made for `TiDB`.

`tidb_snapshot` ensures the consistency of the backup, instead of using `FLUSH TABLES WITH READ LOCK` to ensure the consistency.

Dumpling cannot connect to PD in the following scenarios:
+ The TiDB cluster is running on Kubernetes (unless Dumpling itself is run inside the Kubernetes environment).
+ The TiDB cluster is running on TiDB Cloud.

In such cases, you need to manually adjust the TiDB GC time to avoid export failure.

