一、事务
1、介绍
只有InnoDB支持事务
维护数据库的完整性
管理DDL、DML、DCL操作
2、基本操作
select @@autocommit;
set autocommit=0;
3、特性
ACID
4、隔离级别
MySQL默认是可重复读,Oracle默认是读已提交。
二、锁
协调计算机的线程并发访问某一资源的机制。(避免冲突)
1、分类
表锁适合Web应用,行锁适合在线事务处理系统。
2、InnoDB行锁
3、MyISAM表锁
执行查询操作,自动加读锁;
执行更新操作,自动加写锁;
三、日志
1、分类
a、错误日志
默认开启
show variables like 'log_error%'; #查看错误日志的存放位置
b、二进制日志
介绍:记录了DDL和DML,主从复制使用了binlog,MySQL8.0是默认开启。
格式:statement记录的是SQL语句,row记录的是行数据的变更,mixed是混合了前面两种。
show variables like 'log_bin'; #查看是否启用
show variables like 'binlog_format'; #查看日志格式
show binlog events; #查看所有日志
show master status; #查看最新日志
show binlog events in 'binlog.000008'; #查看指定日志
reset master; #清空日志
#重启mysql
net stop mysql
net start mysql
c、查询日志
记录了所有操作语句,默认不开启。
show variables like 'general_log'; #查看是否开启查询日志
set global general_log=1; #开启查询日志
#在my.ini文件中配置,开启查询日志
general_log=1
general_log_file=host_name.log
d、慢查询日志
记录执行时间超过阈值且扫描行数满足下限的SQL语句。
show variables like 'slow_query_log%';
set global slow_query_log = 1;
show variables like 'long_query_time%';