Navicat备份原理分析以及测试

之前有次恢复数据库涉及到备份恢复问题,正好测一下Navicat这个自带的备份恢复跟sql导出再执行有什么区别,至于备份教程太多,故本文章不包含教程,仅测试性能及分析原理,如有错误,还请各位大佬指正;

因为业务特殊性,本文相关库名表名等业务内容均已打码

目录

一、备份

二、比较

三、还原

四、查看备份

五、分析

导出原理

还原原理

六、总结


一、备份

寻找一个数据量适中的数据库,使用Navicat备份功能:

数据量共四万左右,耗时1:45秒,生成文件名:"20191128180233.nb3",结果如下:

Navicat备份原理分析以及测试

使用sql导出功能(转储SQL文件-结构和数据)

数据量同样四万,耗时1:46秒,生成文件名"goliveplus_pp_test.sql",结果如下:

Navicat备份原理分析以及测试


二、比较

文件大小比较(通过语句查询此库数据占用93.68 MB,索引占用0.23MB)

比较结果如下,sql文件占用76.5MB , 备份文件nb3占用4.94MB(差距巨大有没有):Navicat备份原理分析以及测试


三、还原

本地建立库backup1和backup2,规定相同的编码格式

打开backup1,运行sql文件

sql文件运行花费1:12秒,数据验证完整并包含索引等内容,结果如下:

Navicat备份原理分析以及测试

打开backup2,复制备份到navicat中,运行还原;

nb3文件还原花费了1:29秒,数据验证完整并包含索引等内容,结果如下:

Navicat备份原理分析以及测试


四、查看备份

database_test.sql查看内容:

Navicat备份原理分析以及测试

20191128180233.nb3查看内容:

Navicat备份原理分析以及测试


五、分析

导出原理:

sql语句:大家都懂,就是语句导出,包含建表语句,索引主键,数据插入sql等;

navicat备份:不同于语句导出,在数据查询的同时进行二进制数据压缩,所以备份效率相似(甚至略高,当然也有可能是性能波动,但是没有比sql导出更慢),空间占用极小;

还原原理:

sql语句:进行sql执行,建表插数据;

navicat备份:首先解压文件(在信息日志中可看到Decompressing backup file...),再同sql语句文件一样,进行sql执行,建表插数据,所以navicat备份还原慢于sql语句还原(也有可能不是解压成sql语句,但是明显效率要比SQL执行效率要低);

六、总结

1.数据量小的情况下:推荐navicat备份,备份效率相同,占用体积极小,还原速度也不慢;

2.数据量大的情况下:

2.1.急需还原数据:推荐sql导出,备份效率相同,占用体积大,但是还原速度快;

2.2.仅做日常备份:推荐navicat备份,备份效率相同,占用体积极小,但是还原速度稍低(可能会在数据量越大的情况下差距越大);

讲在最后

  • navicat支持备份文件提取sql文件,不用担心备份出来的文件,如果想还原只能用navicat还原的问题(吃瓜群众:那提取SQL文件需要Navicat吗;我:滚(ノ`Д)ノ;)
  • navicat支持设置计划任务(仅windows),给系统添加自动运行任务,定时备份文件(或者导出sql等),还可以在操作执行后发邮件

如果本文解决了你的问题,不妨点个赞,让我知道这篇文章有帮助到大家我就很开心了。

仍然有问题的朋友,可以在评论区留下你的问题,或者发我邮箱:[email protected],力所能及之处定当鼎力相助。