1、关于存储引擎
1.1、什么是存储引擎?
根据前台部分的指示,完成查询和文件操作等工作的功能,即“后台”部分。这个后台部分称为存储引擎。
1.2、存储引擎的种类
MySQL中可以使用的主要存储引擎:
- MyISAM。以前版本(MySQL5.4或5.4之前)中的默认存储引擎。虽然能够高速运行,但是不支持事务和外键。
- InnoDB。MySQL5.5或者更高版本的默认存储引擎。是唯一一个支持事务的存储引擎。
- BLACKHOLE。写入的任何数据都会消失,查询始终返回空结果。主要用于复制。
- MERGE。将多个MyISAM表作为一个表进行处理。也称为MRG_MyISAM。
- CSV。将数据的实体保存为CSV(逗号分隔)格式的文本文件。改文件可以直接通过Excel等打开。
- MEMORY。因为数据全部存储在了内存中,所以处理速度非常快。主要作为从临时工作区和其他表中提取的数据的读取专用缓存使用。不支持事务。
- ARCHIVE。虽然可以通过压缩来存储大量数据,但是仅支持INSERT和SELECT。
2、设置存储引擎
2.1、确认存储引擎
格式:
SHOW CREATE TABLE 表名;
演示:
2.2、修改存储引擎
格式:
ALTER TABLE 表名 ENGINE=MyISAM;
演示:
3、什么是事务?
将多个操作作为单个逻辑工作单元处理的功能称为事务(transaction)。
当事务开始之后的处理结果反映到数据库中的操作称为提交(commit),不反映到数据库中而是恢复为原来状态的操作称为回滚(rollback)。
4、使用事务
4.1、执行前的注意事项
- DROP等命令是不能执行回滚操作的(无法复原)。
- 存储引擎为MyISAM的表无法使用事务功能,因为MyISAM不支持事务和外键。
- 目前,唯一支持事务功能的存储引擎是InnoDB。
4.2、开启事务
(1)首先显示测试表tb表中的数据。
(2)执行开启事务命令
格式:
START TRANSACTION;
或者也可以输入BEGIN或BEGIN WORK。
演示:
(3)删除表tb中所有的记录
演示:
4.3、确认表的内容
演示:
4.4、回滚恢复
格式:
ROLLBACK;
演示:
可以看到,记录被顺利复原了。
当执行“ROLLABCK;”是,事务会被关闭。如果下次再使用事务,必须使用命令开启事务。
5、自动提交功能
在MySQL中执行命令,处理通常会直接提交。也就是说,所有命令都会自动COMMIT。这种自动进行提交的功能,称为自动提交功能(auto commit)。
当存储引擎为InnoDB时,如果执行了START TRANSACTION(或BEGIN),在执行COMMIT命令之前就不会提交。
5.1、关闭自动提交功能
格式:
SET AUTOCOMMIT=0;
演示:
验证:
需要注意的是,在自动提交功能关闭的状态下,如果没有进行COMMIT就退出MySQL,工作内容就不会反映到数据库中。
5.2、启动已关闭的自动提交功能
格式:
SET AUTOCOMMIT=1;
演示:
5.3、如何确认当前自动提交功能的模式?
我们可以通过SELECT @@AUTOCOMMIT确认当前自动提交功能的模式。如果是开启状态,则显示为“1”,如果是关闭状态,则显示为“0”。
格式:
SELECT @@AUTOCOMMIT;
演示:
6、显示当前可用的存储引擎
格式:
SHOW ENGINES;
演示: