MySQL两大存储引擎
一、MySQL常用的存储引擎:
主要分为2个:
MyISAM:擅长于处理“读”的任务,比如select
InnoDB:功能性而言侧重于写的任务,比如insert、update、alter
PS:
MySQL数据库中的组件,负责执行实际的数据I/0操作
MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储
二、系统引擎的查看修改:
1、查看系统支持的存储引擎:
show engines;
2、查看表使用的存储引擎:
方法一:不进入库的操作:
show table status from 库名 where name='表名'\G
实例:
show table status from school where name='class'\G
由图可知,使用的是InnoDB。
方法二:进入库操作:
use库名;
show create table 表名;
例:
use school;
show create table class\G
3、修改存储引擎:
方法一:通过alter table修改:
use库名;
alter table 表名engine=My ISAM;
例:
use school;
alter table class engine=MyISAM;
show create table class;
方法二:通过修改/etc/my.cnf 配置文件,指定默认存储引擎并重启服务:
vim /etc/my .cnf
[mysqld]
default-storage-engine=INNODB
systemctl restart mysqld
注意:此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更。
方法三:通过create table创建表时指定存储引擎:
use库名;
create table 表名(字段1数据类型,...) engine=MyISAM;
实例:
mysql -u root -p
use school;
create table test9 (name varchar(10)) engine=MyISAM;
show create table test9\G
二、总结:
1、本章讲解了MySQL的事务四个特性ACID:
原子、一致、隔离、持久性
2、事务关键的一点:一致性,要么都成功,要么都失败,保存在自己的回滚日志中
对于事务过程中,我们可以对每一步SQL进行savepoint打标,为了方便回顾
提交事务:commit rollback
3、数据不一致的情况
4种(脏读、幻读、不可重复读、丢失更新)
4、为了解决避免数据不一致的情况,而使用了4种隔离机制—> RR (mysql的默认隔离机制,重读读取:可以解决脏读和不可重复读—— mysql默认的)
5、存储引擎
存储位于文件系统之上的一个组件,用于将mysql缓存中的数据,持久化到文件系统中
—> /usr/ local/mysql/data (mysql工作目录中的data目录)
—> 也是以上的位置,会保存在二进制日志文件中(保存的是SQL语句操作记录)