一.认识mysql
1. MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
2.mysql主要用于处理操作量大。复杂度高的数据。
二.mysql事务提交方式
1.mysql中有两种事务提交方式
a.自动提交(mysql默认提交方式)
a-1.什么是自动提交
自动提交就是执行sql语句(删除,修改,增加)成功,便会立即改变数据库内的数据;
a-2.查看mysql提交方式
格式:
select @@autocommit;
效果如下:
a-3.@@表示全局变量(0=手动提交 1=自动提交)我们也可以改变提交方式
格式:
set autocommit = 0;
set autocommit = 1;
b.手动提交
b-1.开启事务
相当于在一个空间里再开辟一个新空间,新空间里发生的一切,在事务没有(提交/回滚)之前是不会影响到外面那个空间(数据库)。
格式:
start transaction;
b-2-1.提交事务
提交之后mysql数据库会按照你所输入的sql语句发生变化
commit;
b-2-2.回滚事务
回滚就是相当与游戏里面的删档,不在执行当前事务
rollback;
三.mysql事务隔离级别
1.事务特性:
原⼦性(Atomicity):事务内的操作要不全部完成,要不全部回滚。
⼀致性(Consistency):事务执行的前后都是合法的数据状态,不会违反任何的数据完整性。
隔离性(Isolation):主要是事务之间的相互的影响,根据隔离有不同的影响效果。
持久性(Durability):事务⼀旦提交,就会体现在数据库上,不能回滚。
2.事务的并发问题:
脏读:比如事务a执⾏的过程中,读到了事务b未提交的内容。
不可重复读:指⼀个事务在前后两次查询的结果不⼀致。
幻读:幻读是指前后两次相同条件下的查询,后⼀次查询读到 了前⼀次查询没有的⾏数据。
3.事务的隔离级别:
注意:隔离级别越高,性能越差,安全性越高
4.事务的隔离命名:
a.查看隔离级别
b.设置隔离级别
set global transaction_isolation='级别字符串';
b-1. read uncommited 1级
b-2. read committed 2级
b-3 repeatable read 3级
b-4 serializable 4级
隔离级别越高,性能越差,安全性越高
c.重启客户端(黑屏),查看当前隔离级别