当前位置: 首页> 教育> 培训 > 网站的营销策略_有人免费资源吗_策划营销_网络推广需要什么

网站的营销策略_有人免费资源吗_策划营销_网络推广需要什么

时间:2025/7/12 2:35:20来源:https://blog.csdn.net/hadage233/article/details/145667733 浏览次数:0次
网站的营销策略_有人免费资源吗_策划营销_网络推广需要什么

什么是事务

因为事务的存在,可以使得多条sql语句一起执行,并且只有全部执行成功或全部执行失败俩种结果,保证了数据的安全,也使得这些sql语句拥有了原子性,隔离性,一致性,持久性(ACID)

事务的ACID特性

Atomicity(原子性):一个事务中的所有操作,要嘛全部都执行失败,要嘛全部执行成功这俩中结果,不会存在某些执行成功,某些执行失败的情况,如果执行失败,能确保数据能回滚(RollBack)搞事务执行之前,就好像这个事务没有执行过一样

Consistency(一致性):事务执行开始和结束之后,数据库的完整性不会被破坏,也就是说数据的写入规则完全符合数据库的预期,包括数据的精度,关联性,约束条件,还会有如果数据库崩溃了应该如何恢复

Isolation(隔离性):数据库允许了多个事务同时的对数据进行读取的修改,那么隔离性就确保他们在对数据进行修改或者读取的时候的数据的准确性,不会因为多线程操作而引起线程安全问题,可以设置不同的隔离性来确保在不同场景下数据库的性能和安全性

Durability(持久性):事务在结束之后数据被储存在响应的存储介质中,确保了即使发生故障数据也不会丢失

事务的隔离性和隔离级别

当同一个数据库被多个事务访问,并对同一张表的同同一条数据进行修改,那就不可避免的会出现不同事务相互影响的情况出现,因为这样,那么不同的事务之间就需要相互隔离起来,这就是隔离性

隔离级别

READ UNCOMMITED读未提交
READ COMMITED读已提交
REPEATABLE READ可重复读
SERIALIZABLE序列化

表格从上到下对应的数据库的并发性能递减

不同的隔离性存在的问题

在sql中开启一个事务之后,在未进行显示提交之前,所有对数据库的操作都不会直接写入数库中,而是会处于暂存状态,只有在提交了事务之后,才会真正的将数据写入到数据库中

READ UNCOMMITED 读未提交

读未提交在隔离级别中最低的,他允许了事务读取到处于暂存状态的数据,但是这样就会有脏读的错误出现

事务A读到了事务B处于暂存状态的数据,那么如果事务B之后将数据回滚的话,那么事务A就读到了脏数据,这是不存在的数据,这种现象就叫做脏读

那么为了解决脏读的情况,可已使用读已提交隔离

READ COMMITTED 读已提交

读已提交只能读取其他事务提交之后的数据,这样就避免了因为读取到了未提交的数据而引起的脏读,但是这样有会引起一个新的问题,不可重复读

当事务A在数据库中读到了数据C,这之后事务B对数据C进行了修改为D并提交,那么这是事务A再读取数据C,结果发现结果为D了,这样就导致了在同一个事务中俩次相同的读取获得的结果不同,这中现象叫做不可重复读

那么为了解决脏读和不可重复读的问题,可以使用可恶重复读

REPEATABLE READ 可重复读

为了解决不可重复读的问题,可重复读加入了行级锁,可重复锁会给事务使用过的数据按行为单位上锁,这样就不允许别的事务去使用,于是就解决了不可重复读的问题,可是这样也会引起新的问题,幻读

当事务A在对数据使用区域查找到CDE之后,CDE都是被上锁,那么事务B不能修改CDE但是,B可以插入数据F到C之后,那么在B提交之后数据变成了CBDE了,这时事务A又使用相同的查询,结果发现结果为CBDE了,这俩次查询到了数据又不同了,这种现象就叫做幻读

那么为了解决脏读,不可重复读,幻读这些问题,就可以使用最强的隔离方式序列化

SERIALIZABLE 序列化

序列化将所有的事务变为串行执行, 必须等上一个事务限制行玩才能接着执行下一个,没有了并发执行的能力,也就不有并发执行带来的问题,安全性最高

事务的相关sql语句

开启一个事务

start transaction;

提交事务

commit;

查看会话的隔离等级

SELECT @@SESSION.transaction_isolation;

查看全局的隔离等级

SELECT @@GLOBAL.transaction_isolation;

设置会话隔离级别

SET SESSION transaction isolation level serializable(隔离级别);

设置全局隔离级别

SET GLOBAL transaction isolation level serializable;

设置事务的访问模式

设置事务只读

SET GLOBAL transaction isolation level read only;

设置只能读写

SET GLOBAL transaction isolation level read write;

end~~

关键字:网站的营销策略_有人免费资源吗_策划营销_网络推广需要什么

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: