定义:MySQL 事务主要用于处理操作量大,复杂度高的数据。
一句话概括:可以回滚,可以提交,程序没有问题,则提交,有问题就回滚
一般来说,事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性 : 有非法数据(外键约束之类),事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里。
事务(transaction)的语法:
(1)开启事务:begin; //start transaction;
(2)进行相关的操作
(3)提交事务:commit;
(4)撤销事务(回滚):rollback;
使用事务的注意事项:
(1)表必须是innodb存储引擎
(2)常用于金额、库房等行业,一般行业不使用
mysql中的存储引擎:
mysql数据类型很多,表很多,在处理数据上存在差异
针对不同的处理要求,mysql提供多种不同的存储引擎
(1)innodb my.ini里default-storage-engine=InnoDB(My)
a)事务型存储引擎,支持事务,有崩溃恢复能力
b)表只有一个.frm文件,索引和数据是紧密相连的,降低mysql运行效率
c)mysql版本是5.5及之后的,默认存储引擎是innodb
(2)myisam
a)表分成三个文件存储(.frm,.myd,.myi),索引和数据是分开的,提高mysql运行效率
b)不支持事务
c)mysql版本是5.5之前,默认存储引擎是myisam