避免写入直接操作数据文件
利用日志来实现间接写入
MySQL共有5种日志,其中只能redo日志和undo日志与事务有关。
事务机制
RDBMS=SQL语句+事务(ACID)
事务是一个或者多个SQL语句组成的整体,要么全部执行成功,要么全部执行失败。
管理事务
默认情况下,MYSQL执行每条SQL语句都会自动开启和提交事务
为了让多条SQL语句纳入到一个事务之下,可以手动管理事务。
START TRANSACTION;
SQL语句
[COMMIT|ROLLBACK];
事务的特性ACID:原子性、一致性、隔离性、持久性。
原子性:一个事务所有的操作要么全部完成,要么全部失败。
一致性:不管给定的时间、并发事务有多少,事务保证运行结果的一致性。
隔离型:要求事务部受其他并发事务的影响,如同在给定时间内,该事务唯一运行的事务。默认事务A,能看到日志中该事务的相关数据。
持久性:事务一旦提交,结果便是永久性的。
事务的隔离级别
read uncommited 读取未提交数据
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
read committed 读取已提交数据
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
repeatable read 重复读取(在事务中反复读取,不受其他事务影响)
serializable 序列化(让事务逐一执行,牺牲了并发性)
数据导入与备份的区别
数据导出是纯粹的业务数据
数据备份,是备份数据文件、日志文件、索引文件等。
全量备份--->增量备份1----->增量备份2
导出SQL文件
mysqldump用来把业务数据导出成SQL文件,其中包括表结构。
mysqldump -uroot -p [no-data] 逻辑裤>路径
导入SQL文件
SOURCE命令用来导入SQL文件
USE deml;
SOURCE backup.sql;