zoukankan      html  css  js  c++  java
  • PHP事务是什么?

    php事务四大特性

    事务就是一组原子性的SQL查询,或者说一个独立的工作单元。

    原子性(Atomicity):

    事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。

    一致性(Consistemcy):

    事务前后,数据库的状态都满足所有的完整性约束。

    隔离性(Isolation):

    并发执行的事务是隔离的,一个不影响一个。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。

    通过设置数据库的隔离级别,可以达到不同的隔离效果。

    持久性(Durability):

    在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

    php事务的并发问题

    1、脏读

    事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据。

    2、不可重复读

    事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

    3、幻读

    系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

    vi设计http://www.maiqicn.com 办公资源网站大全https://www.wode007.com

    小结:

    不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表。

  • 相关阅读:
    牛客网-湘潭大学校赛重现H题 (线段树 染色问题)
    bzoj 2243: [SDOI2011]染色 (树链剖分+线段树 区间合并)
    SPOJ QTREE2 (LCA
    Neo4j-Cypher
    MySQL避免插入重复记录:唯一性约束
    python ftp教程
    Neo4j 导入 CSV 文件
    jupyter notebook 安装 jupyter_contrib_nbextension
    python 性能分析(时间,空间)之 line_profiler 模块 ,memory_profiler的使用
    hive 自定义函数
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13718783.html
Copyright © 2011-2022 走看看