插入每行或每个表只有一个之间的差异

时间:2014-03-24 12:46:29

标签: mysql sql insert mysqldump dump

我在客户端表上使用两种备份形式。 有时我使用mysqldump,有时我使用SQLYog备份。

SQLYog以这种方式创建插入:

insert  into `tbb111`(`PPU_NOME_USU`,`PPU_NOME_PRG`,`PPU_SEQ_PRG`,`PPU_DES_PPU`) values ('RACHEL','SDMW','0','Todas     ;01012014;28022014;00001;;;');
insert  into `tbb111`(`PPU_NOME_USU`,`PPU_NOME_PRG`,`PPU_SEQ_PRG`,`PPU_DES_PPU`) values ('RACHEL','SDMW2251','0','01012013;31122014;');
insert  into `tbb111`(`PPU_NOME_USU`,`PPU_NOME_PRG`,`PPU_SEQ_PRG`,`PPU_DES_PPU`) values ('RACHEL','SDMW2290','0','Todos;01012013;31122014;;;;00000000000;99999999999;;');

mysqldump以这种方式创建:

INSERT INTO `sdm638` VALUES 
('1','1','201402','1002','Computadores e Periféricos','0','0','222222','0','733.4800','539.3200','1272.8000','0.0000','0.0000','0.0000','0.0000','0','0','0'), 
('1','1','201402','1008','Veículos','0','0','222222','0','0.0000','42900.0000','42900.0000','0.0000','0.0000','0.0000','0.0000','0','0','0'),
('1','1','201402','2001','Água e Esgoto','0','0','222222','0','458.6400','458.6400','917.2800','0.0000','0.0000','0.0000','0.0000','0','0','0'),
('1','1','201402','2002','Combustível','0','0','222222','0','0.0000','237.6000','237.6000','0.0000','0.0000','0.0000','0.0000','0','0','0'),
('1','1','201402','2004','Copa e Cozinha','0','0','222222','0','463.2000','181.6998','644.8998','0.0000','0.0000','0.0000','0.0000','0','0','0')

Mysqldump显然更好,因为文件要小得多。 我刚刚在客户端上测试了mysqldump获得了2.5gb而SQLYog是8gb。

我想知道它们之间的区别。即使没有插入每一行,mysqldump也会一直工作吗? 性能是相同的还是mysqldump更快,因为代码更少?

谢谢你们。

2 个答案:

答案 0 :(得分:1)

功能上两者都是相同的,但从性能的角度来看,后者(mysqldump版本)要快得多,因为不会对每一行执行解析,而是一次执行一堆行。

推荐阅读:

答案 1 :(得分:0)

不同的重要思想是: 在第一个中,您确保数据是正确的。如果向表中添加一些col,则可以确保将值添加到对应的col。但这会在脚本中花费更多的字节

在第二步中,您可以减少脚本的成本和性能提升。

这是一个备份我认为你最好选择的是mysqldump

希望这有帮助。