likeopencode 2017-06-09 06:06 采纳率: 33.3%
浏览 742
已采纳

比较简单的问题 关于数据库

一直没想明白,,我知道数据库里有并发控制的机制,但 如果有两个 会话 同时修改 同一个数据,这个时候 数据库会怎么做,它把哪个排前面 哪个排后面。

  • 写回答

9条回答 默认 最新

  • 频繁跳槽不好 2017-06-13 03:15
    关注

    楼主应该是问就算是有事务,事务和事务的开始也会有冲突的,到底是哪个事务先获得锁。
    这个应该是CPU决定的,底层都是调用操作系统的对应命令,操作系统调用CPU的指令,由CPU来决定哪个操作先操作寄存器,一级缓存等等,到什么时候将
    缓存中的数据push到内存中去,不同的CPU有不同细节。CPU本身也有锁,锁也是有级别的。这也是CPU升级的原因之一吧,高级的CPU算法实现会优化的,当然也是需要操作系统适配的。
    对于删除,mysql的innodb先是逻辑删除的,然后由定时循环主任务或者触发将数据物理内存删除,再push到磁盘上。
    对于insert和update,同样先是到内存中,看到底有多少脏页,是可以配置的,符合条件后再统一push到磁盘上。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度