MYSQL默认支持的存储引擎有8个,常用的有两个,分别是InnoDB、MyISAM。
MYSQL事务操作
有两种方式进行事务操作,及自动事务提交(默认)、手动提交事务两种。
手动事务提交:
开启事务 begiin or start transaction
提交事务 commit
回滚事务 rollback
并发访问产生的问题:脏读、不可重复读、幻读
脏读:其中一个事务读取到其他事务未提交的数据
不可重复读:其中一个事务两次读取的数据不一致(在读取第二次数据前其他事务对数据进行了修改操作)
幻读:SELECT 操作得到的结果前后不一样(在第二次操作前其他事务对数据进行增加操作)
四种隔离级别
读未提交 会产生三种问题
读已提交 解决了读脏数据
可重复读 解决了读脏数据 不可重复读(MYSQL)
串行化 三种问题已解决
依上边顺序,级别呈现递增趋势,不是隔离级别越高最好,级别越高响应的效率较低
查看本数据库隔离级别
select @@transaction_isolation;
设置数据库隔离级别
set session transaction isolation level 隔离级别名称;
InnoDB引擎:索引和数据都是存储在表名.idb文件中。
MyISAM引擎:索引和数据存储在不同的文件中,表名.MYD 存储数据,表名.MYI存储索引。