-- 实现事务的两种方式
-- 关闭事务自动提交 手动commit
-- 开启事务 然后提交
-- 事务的四大特性
-- 原子性(不可分割,要么全部成功,要么全部失败 )
-- 一致性(事务完成时,所有数据保证一致状态)
-- 隔离性(数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行)
-- 持久性(事务一旦提交或回滚,它对数据库中的数据改变是永久的)
-- 并发事务引发的问题
-- 脏读 一个事务读取到另外的一个事务没有提交的数据
-- 不可重复读 一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读(另外的事务在中间修改数据并提交)
-- 幻读 一个事务在按照条件查询数据时,没有对应的数据行,但是在插入时,又发现这行数据已经存在,好像出现了‘幻影’
-- 事务的隔离级别 脏读 不可重复读 幻读
-- read uncommitted √ √ √
-- read committed(orqcle默认) x √ √
-- repeatable read(mysql默认) x x √
-- serializable x x x
-- 查看事务隔离级别
select @@transaction_isolation;
-- 设置事务隔离级别
set [session | global] transaction isolation level {read uncommitted | read committed | repeatable read | serializable}
-- 索引及其后面没有学
-- 运维篇
-- 查看错误日志位置
show variables like '%log_error%';
-- 二进制日志(binlog)记录了所有ddl语句和dml语句,但不包括数据查询(select,show)语句。
-- 作用 1.数据恢复 2.mysql主从复制,mysql8版本中,默认二进制是开着的
show variables like '%log_bin%';
show variables like '%binlog_format%';
-- 查看mysql查询日志,默认不开启,在繁忙的业务系统中会很大,用不掉就关掉
show variables like '%general%';