mysq事务、日志

发布时间 2023-07-08 20:57:12作者: record-100
-- 实现事务的两种方式
-- 关闭事务自动提交 手动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%';