MySQL数据库备份、事务、存储引擎

一、数据库备份:

1、语法备份

备份:mysqldump -u用户名 -p密码 > 保存路径
还原: 
1、登录数据库 mysql -u用户名 -p密码;
2、创建数据库 create database 数据库名称;
3、使用数据库 use 数据库名称;
4、执行文件 source 文件路径/文件名

2、图形化工具备份
备份:选中数据库右键备份导出
还原:执行sql脚本

二、存储引擎

概念: MySQL中的数据用不同的存储技术存储在文件或内存中的存储方式就叫存储引擎。
通过show engines命令可以查看mysql支持的存储引擎
在MySQL中应用最多的存储引擎有innodb,myisam,memory等。其中innodb支持事务,myisam、memory等不支持事务。

MyISAM和InnoDB区别:
myisam是MySQL默认数据库引擎(5.5版之前),现在MySQL默认数据库引擎是innodb
对比:
1、是否支持行级锁:myisam只有表级锁,而innodb支持行级锁和表级锁,默认是行级锁。
2、是否支持事务和崩溃后的安全恢复:myisam强调的是性能,每次查询具有原子性,其执行速度比innodb类型速度快,但不提供支持事务。但innodb提供事务支持事务,外部键等高级数据库功能,具有事务回滚和崩溃修复能力和事务安全。
3、是否支持外键:myisam不支持外键,innodb支持外键。

三、事务:

概念: 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作步骤要么同时成功要么同时失败。
操作步骤:
1、开启事务:start transacation;
2、回滚:rollback;
3、提交:commit;

事务提交的两种方式
1、自动提交:
一条MySQL的DML语句会自动提交一次事务。
2、手动提交:
需要先开启事务在提交。
MySQL数据库中事务默认自动提交
Oracle数据库默认手动提交。

修改事务的默认提交方式:
查看事务的默认提交方式:select @@autocommit;
1代表自动提交,0代表手动提交
修改默认事务提交方式:
set @@autocommit =0;

事务的四大特性:(ACID)
原子性(atomicity):是不可能分割的最小单元,要么同时执行,要么同时失败。
持久性(consistency):当事务提交或者回滚后,数据库会持久化的保存数据。
隔离性(isolation):多个事务之间互相独立。
一致性(durability):实务操作前后,数据总量不变。

数据库隔离级别
READ UNCOMMIT(读未提交数据):允许读事务未被其他事物提交的变更。脏读,不可重复读和幻读的问题都会出现。
READ COMMIT(读已提交数据):只允许事务读取已经被其他事物提交的变更。可以避免脏读,但不可重复读和幻读问题仍可能出现。
REPEATABLE READ(可重复读): 确保事务可以多次从一个字段中读取相同的值。在这个事务持续期间,禁止其它事务对这个字段进行更改。可以避免脏读和不可重复读,但幻读的问题依然存在。(MySQL默认的事务隔离级别)
SERIALIZABLE(串行化):确保事务可以从一个表中读取相同的行。但这个事务持续期间禁止其他事物对该表进行插入,更新和删除操作,所有并发问题都可以避免,但性能十分低下。

查看当前隔离级别:select @@tx_isolation;
设置当前MySQL连接的隔离级别: set transaction isolation level read committed;
设置数据库系统全局的隔离级别:set global transaction isolation level read committed;

脏读: 对于两个事务T1,T2,T1读取了已经被T2更新但还没有被提交的字段,之后若T2回滚,T1读取的内容就是临时且无效的。
不可重复读:对于两个事物T1,T2,T1读取了一个字段,然后T2更新了该字段,之后T1再次读取同一个字段值就不同了。
幻读:对于两个事务T1,T2,T1从一个表中读取了一个字段,然后T2在该表中插入了一些新的行,之后如果T1再次读取同一个表就会多出几行。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值