MySQL性能调优(4)Innodb存储引擎的事务
事务
数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;事务是一组不可再分割的操作集合(工作逻辑单元);
MySQL中如何开启事务:
| |
JDBC编程开启事务
| |
事务的ACID特性
- 原子性(Atomicity)
最小的工作单元,整个工作单元要么一起提交成功,要么全部失败回滚
- 一致性(Consistency)
事务中操作的数据及状态改变是一致的,即写入资料的结果必须完全符合预设的规则,不会因为出现系统意外等原因导致状态的不一致
| |
- 隔离性(Isolation)
一个事务所操作的数据在提交之前,对其他事务的可见性设定(一般设定为不可见)
- 持久性(Durability)
事务所做的修改就会永久保存,不会因为系统意外导致数据的丢失

##### MySQL 客户端/服务端通信
- MySQL客户端与服务端的通信方式是“半双工”;
- 客户端一旦开始发送消息,另一端要接收完整个消息才能响应。客户端一旦开始接收数据没法停下来发送指令。
- 对于一个MySQL连接,或者说一个线程,时刻都有一个状态来标识这个连接正在做什么
- 查看命令 show full processlist / show processlist
我正在通过navicat向虚拟机里面的数据库导入数据
```
Sleep 线程正在等待客户端发送数据
Query 连接线程正在执行查询
Locked 线程正在等待表锁的释放
Sorting result 线程正在对结果进行排序
Sending data 向请求端返回数据
可通过kill {id}的方式进行连接的杀掉
```
[官网状态全集](https://dev.mysql.com/doc/refman/8.0/en/general-thread-states.html)