史上最简单的 MySQL 教程(三十五)「数据备份与还原(上)」

数据备份与还原

基础概念:

备份,将当前已有的数据或记录另存一份;

还原,将数据恢复到备份时的状态。

为什么要进行数据的备份与还原?

防止数据丢失;

保护数据记录。

数据备份与还原的方式有很多种,具体可以分为:数据表备份、单表数据备份、SQL备份和增量备份。
 

数据表备份

数据表备份,不需要通过 SQL 来备份,我们可以直接进入到数据库文件夹复制对应的表结构以及数据;在需要还原数据的时候,直接将备份(复制)的内容放回去即可。

不过想要进行数据表备份是有前提条件的,因为不同的存储引擎之间是有区别的。

对于存储引擎,MySQL 主要使用两种,分别为:InnoDB 和 Myisam,两者均免费。在这里,咱们可以顺便科普一下存储引擎的知识:
 

 
特点MyisamInnoDBBDBMemoryArchive
批量插入的速度非常高
事务安全——支持支持————
全文索引支持5.5版本支持——————
锁机制表锁行锁页锁表锁行锁
存储限制没有64TB没有没有
B树索引支持支持支持支持——
哈希索引——支持——支持——
集群索引——支持——————
数据缓存——支持——支持——
索引缓存支持支持——支持——
数据可压缩支持——————支持
空间使用N/A非常低
内存使用中等
外键支持——支持——————

其中,Myisam 和 InnoDB 的数据存储方法也有所区别:

Myisam:表、数据和索引全部单独分开存储;

InnoDB:只有表结构,数据全部存储到ibd文件中。

执行如下 SQL 语句,测试 Myisam 的数据存储方式:
 

[plain] view plaincopy

  1. -- 创建 Myisam 表  
  2. create table my_myisam(  
  3. id int  
  4. )charset utf8 engine = myisam;  
  5.   
  6. -- 显示表结构  
  7. show create table my_myisam;  
  8.   
  9. -- 插入数据  
  10. insert into my_myisam values(1),(2),(3);  
  11.   
  12. -- 显示数据  
  13. select * from my_myisam;  





如上图所示,我们创建了名为my_myisam,存储引擎为 Myisam 的数据表。为了验证 Myisam 的存储特性,我们可以到data文件夹查看具体的数据存储情况:



如上图所示,我们仅仅创建了一个表my_myisam,但是 Myisam 对于会生成三个存储文件,分别为:

my_myisam.frm:存储表的结构;

my_myisam.MYD:存储表的数据;

my_myisam.MYI:存储表的索引。

现在,我们将这三个文件复制到testoo数据库(至于如何找到 MySQL 数据文件的存储位置,可以参考详述查看 MySQL 数据文件存储位置的方法):



执行如下 SQL 语句,进行测试:
 

[plain] view plaincopy

  1. -- 切换数据库  
  2. use testoo;  
  3.   
  4. -- 查看 testoo 数据库中的表  
  5. show tables;  
  6.   
  7. -- 查看表 my_myisam  
  8. select * from my_myisam;  





如上图所示,显然我们已经通过复制文件的方式,完成了数据表的备份工作。

在这里,有一点需要我们注意,那就是:我们可以将通过 InnoDB 存储引擎产生的.frm.idb文件复制到另一个数据库,也可以通过show tables命令查看复制过来的表名称,但是却无法获得数据



执行如下 SQL 语句,进行测试:
 

[plain] view plaincopy

  1. -- 查看 testoo 数据库中的表  
  2. show tables;  
  3.   
  4. -- 查看表 my_class  
  5. select * from my_class;  





通过以上测试,显然数据表备份这种备份方式更适用于 Myisam 存储引擎,而且备份的方式也很简单,直接复制 Myisam 存储引擎产生的.frm.MYD.MYI三个存储文件到新的数据库即可。

温馨提示:符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值