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

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

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

  • 写回答

9条回答 默认 最新

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

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

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

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。