MySQL事物处理和数据表类型与存储位置
数据表类型与存储位置
更改表存储引擎
alter table tablename engine=innodb/myisam
1、数据表类型
我们表的存储引擎有很多 其中innodb和myisam最为重要的
- 区别
- mysiam表类型会产生三个文件 innodb会产生俩个文件
- MyISAM表类型效率更高
- innodb的安全性高于myisam
- innodb支持事物处理 myisam不支持
- myisam不支持外键 innodb支持
2、存储区别
innodb
- .frm 存储数据表的框架结构 每一个表对应一个.frm 并且和表名相同
- .ibd 存放数据表数据以及索引
myisam
- .frm 存储数据表的框架结构 每一个表对应一个.frm 并且和表名相同
- MYD my data 表数据文件
- MYI my index 索引文件
数据库文件也是存储在磁盘上的
事物处理
1、概述
事物机制确定保持数据的一致性
事物应该有四个属性
-
原子性
一个事物是不可分割的工作单位 事物中的操作要么都做要么都不做
-
一致性
事物是必须使数据库从一个一致性状态 到另一个一致性的状态
-
隔离性
一个事物的执行不能被其它事物干扰
-
持久性
持久性也叫永久性 事物一旦提交 对于数据库中的数据的改变是永久的
2、使用
alter table tablename engine=innodb
3、操作
(1) 查询当前为自动提交还是手动提交
select @@autocommit [kəˈmɪt]
如果值为1 则为自动提交
(2) 开启事物
set autocommit = 0;
(3) 事物开始
begin
(4) 执行SQL语句
insert into user values('lucky', 'w', 18);
(5) 提交 / 回滚
commit work;
rollback work;
注意
如果在执行数据修改以后 没有提交或者回滚 退出了数据库 则回滚到你没操作之前的状态
本文来自博客园,作者:寻月隐君,转载请注明原文链接:https://www.cnblogs.com/QiaoPengjun/p/16013080.html