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;

注意

如果在执行数据修改以后 没有提交或者回滚 退出了数据库 则回滚到你没操作之前的状态

posted @ 2022-03-16 15:44  寻月隐君  阅读(69)  评论(0编辑  收藏  举报