我的问题是这个 我的数据库中有超过100万行的表。有时我需要在我的电脑上有我的表的SQL转储并导出整个表需要很长时间。 实际上我需要导出表格,例如最后5000行。 那么有没有办法通过选择最后X行导出MySql表。 我知道一些方法可以通过终端命令来实现,但是如果可能的话,我需要糟糕的MySql查询。 谢谢
答案 0 :(得分:0)
如果我理解得很好,您可以尝试使用MySQL提供的INTO OUTFILE
功能。当然,我不知道您当前的查询是什么,但您可以轻松地改变我的结构:
SELECT *
FROM table_name
INTO OUTFILE '/tmp/your_dump_table.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ORDER BY id DESC
LIMIT 5000
由于用户@Hayk Abrahamyan已表示倾向于将转储导出为.sql文件,因此我们尝试分析有效的替代方案:
作为.sql输出文件的结果,你将得到类似下面的结构:
/*
-- Query: SELECT * FROM mytodo.todos
ORDER BY id DESC
LIMIT 5000
-- Date: 2018-01-07 13:15
*/
INSERT INTO `todos` (`id`,`description`,`completed`) VALUES (3,'Eat something',1);
INSERT INTO `todos` (`id`,`description`,`completed`) VALUES (2,'Buy something',1);
INSERT INTO `todos` (`id`,`description`,`completed`) VALUES (1,'Go to the store',0);