存储引擎:

MYSQL的功能大致分为两种:

一:连接客户端和提前检查SQL语句内容,即前台部分

二:根据前台部分的指示,完成查询和文件操作等工作的功能,即后台部分。这个后台部分称为储存引擎。

储存引擎的种类:

MYSQL预置了多个储存引擎,用户可以根据使用目的和个人喜好进行选择。存在引擎相互独立且允许用户自主进行选择,正是MYSQL的特征。

【MYSQL笔记】使用事务_存储引擎

默认使用引擎InnoDB。但是到MYSQL5.4为止的版本中,默认储存引擎都是MyISAM。虽然MyISAM比当时的InnoDB处理的速度快,但是遗憾的是它不支持事务。

但是现在InnoDB的处理速度也变得很快了,所以我们不需要使用MyISAM。

确认存储引擎:

show create table tb;

【MYSQL笔记】使用事务_sql_02

我们可以在ENGINE=XX的部分确认存储引擎。

当创建表时,如果未指定存储引擎的情况下,将会选择默认的InnoDB。

修改存储引擎:

例:将表tb的存储引擎由InnoDB修改为MyISAM

alter table tb engine=MyISAM;

事务:将多个操作作为单个逻辑工作单元处理的功能称为事务(transaction)。

将事务开始之后的处理结果反映到数据库中的操作称为提交(commit)。

不反映到数据库中而是恢复为原来状态的操作叫做回滚(rollback) 。

例:在银行账户中,扣除十万元和增加十万元的操作应该作为一个不可分割的整体来处理。

如果增加十万元的操作失败,那么扣除十万元的操作也应该取消掉。

开启事务:

start transaction;
delete from tb;
rollback;

删除表后回滚(复原),删除的记录就能够复原。

当执行rollback时,事务会被关闭。

在上面的示例 中,如果执行commit代替rollback,删除的记录就会提交,所有的记录都会被用户记录都会被删除。

自动提交功能:在MYSQL中执行命令,处理通常会直接提交。也就是说,所有命令都会自动COMMIT。

在默认状态下,自动提交功能处于开启状态。但是,当存储引擎为INNODB时,如果执行了start transaction在执行commit命令之前就不会提交。

用户可以强制将自动提交功能设置为关闭。如果关闭了自动提交功能,即使执行了SQL语句也不会自动提交,必须通过COMMIT进行提交,或者通过rollback进行复原。

关闭自动提交功能:

set autocommit=0;

开启自动提交功能:

set autocommit=1;

事务的使用范围:

启动事务之后,并不是所以操作都可以通过回滚复原。

下面操作会被自动提交

【MYSQL笔记】使用事务_sql_03