从 mysqldump 文件中提取单个表
一个数据库的完整 mysqldump 可能有几十 GB,而你常常只需要其中一个表:用来恢复、检查数据或发给别人。BigText 无需把转储载入内存即可立即打开它,一次遍历列出所有表,并把需要的表连同恢复所需的一切写入单独的文件。
操作步骤
打开转储
通过“文件 → 打开”或把 .sql 文件拖到窗口上打开。.sql.gz 转储也可以直接打开。
列出所有表
“文件 → SQL 转储中的表…”只读取一遍转储,速度约每秒 1 GB,并列出所有表及其行数和大小,可按转储顺序或从大到小排列。要在数百个表中找到某个表,在筛选框中输入名称的一部分即可。
查看表
单击一个表即可跳到它的 CREATE TABLE 语句,查看其列。
保存为文件
右键单击该表,选择“将此表另存为…”。文件中包含该表的 DROP 和 CREATE 语句、数据行、键、索引和触发器,以及转储开头和结尾的设置,因此可以单独恢复:
mysql shop < orders.sql。
小贴士
- 多个表:在列表中勾选它们,然后点击“将勾选的表保存为一个文件…”。“在新标签页中打开此表”可以不保存就查看一个表。
- “按表拆分为多个文件…”为每个表写一个文件,另有一个文件存放表之前的内容,一个存放之后的视图、例程和外键。按文件名顺序执行即可恢复整个转储:
for f in shop.*.sql; do mysql shop < "$f"; done。 - 纯文本格式的 pg_dump 文件和 SQLite 的
.dump文件用法相同。在脚本中:bigtext-cli sqldump shop.sql extract orders -o orders.sql。