网站建设与网页设计专业沧州英文模板建站
news/
2025/9/23 9:39:57/
文章来源:
网站建设与网页设计专业,沧州英文模板建站,如何建设一个人工智能网站,有哪些学做衣服的网站目录 原子性
一致性
持久性
隔离性
事务隔离级别
并发执行可能存在问题
脏读问题
不可重复读
幻读
难点解析 原子性
事务最核心的就是原子性 以前人们认为原子不可再分#xff0c;用原子性来表示一个事务不可分割
update account set balancebalance-500 where nam…目录 原子性
一致性
持久性
隔离性
事务隔离级别
并发执行可能存在问题
脏读问题
不可重复读
幻读
难点解析 原子性
事务最核心的就是原子性 以前人们认为原子不可再分用原子性来表示一个事务不可分割
update account set balancebalance-500 where name 张三如果在此过程中数据库崩溃那么张三扣钱而李四不加钱update account set balancebalance500 where name 李四 要么全部都不执行要么全部都执行 事务就能保证当执行过程中出现问题的时候自动把前面SQL执行的效果进行还原恢复如初回滚rollback 在事务执行过程中mysql才会记录每一步执行了什么一旦有问题就回滚 事务有空间代价和时间代价事务只有在开启状态才会消耗这些代价 如果是ctrlz的话意味着每一步回退和记录都得消耗这个空间和时间 实际上人对SQL操作在实际运用中并不是很多大部分都是机械在对服务器进行操作出错概率很小撤回机制没有必要。 开启事务start transaction;执行多条SQL语句 回滚或提交rollback/commit;除了原子性外事务还有 一致性
事务执行前后数据处在一致状态数据CURD对的上 持久性
事务进行的改动都是写到硬盘不会随着程序重启/主机重启后丢失 隔离性
多个事务并发执行的时候事务之间能够保持隔离互不干扰。 同一时刻多个客户端都给服务器提交事务执行事务 事务隔离级别
read uncommitted 允许读未提交的数据并发程度相当高隔离性最低可能有脏读不可重复读幻读的问题read commited 只能读提交后的数据相当于对写进行加锁并发性开始下降隔离性开始提高解决了脏读的问题repeatable read 读和写操作都加了锁并发程度再降低隔离性再提高解决了脏读不可重复读可能会有幻读的问题serializable 严格执行串行化并发程度最低隔离性最高解决了脏读不可重复读幻读的问题但效率最低
MySQL默认为repeatable read 在MySQL配置文件中my.ini中进行设置根据不同的需求场景可以设置不同的档位 并发执行可能存在问题 脏读问题 一个事务A在修改数据同时另一个事务B读取了数据此时A很可能在提交的时候修改 了B读取的数据导致事务B读取的数据为无效数据这种错误操作就是脏读操作 解决方法:在事务提交之前不能进行读操作提交之后才能读 也就是对 写操作 加锁
在加锁之前我的写操作和同学的读操作就是完全高并发的 但是并发性虽然高隔离性却是最低的 在加锁之后写的时候不能进行读操作并非性降低了隔离性提高了 不可重复读 在一个事务A中多次读取同一个数据发现不一样 解决方法: 读数据的时候不能修改读加锁
引入读加锁后并发程度进一步降低了效率也下降了 但隔离性提高了数据准确性也提高了 幻读 特殊的不可重复读对A文件进行读的时候增加了新文件B 导致读之前的结果集与读之后的结果集不同。 解决方法: 串行执行效率最低并发程度最低此时隔离性最高数据的准确性最高。 MySQL的优化措施: REPEATABLE_READ可重复读间隙锁就能解决幻读问题了,不一定要串行化 这样就构造了一个查锁吗,查的数据被锁了,不查的空数据也被锁了 间隙锁:加锁范围是被查询范围内的空隙(未填写数据的空位置),防止查询期间其他事务插入到间隙中,导致读之前的结果集与读之后的结果集不同。 上述 三种情况不一定是bug要根据实际需求需要考虑对特定目标的准确性要求
衡量是不是BUG的唯一标准就是看是否符合需求 难点解析 1.REPEATABLE_READ可重复读)给查的数据加上锁,在事务结束之前都不能修改,以此来解决不可重复读问题 2.REPEATABLE_READ可重复读间隙锁就能解决幻读问题了,不一定要串行化 这样就构造了一个查锁吗,查的数据被锁了,不查的空数据也被锁了 3.串行化就是等一个结束了再上另一个事务(类似葫芦娃救爷爷) 4.在串行化隔离级别下读操作也会被加锁(一般是共享锁),不过在读取数据后就会放开数据,多个事务可以交替读.但是只能由一个事务改,且在写完之前都不能读 哈谢谢各位同志的阅读然后呢如果觉得本文对您有所帮助的话还给个免费的赞捏 Thanks♪(ω)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912080.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!