仙侣步惊云 2021-12-26 22:29 采纳率: 0%
浏览 10

大家使用数据库,有遇到到checkpoint问题的吗?

也就是,如果我用程序更新了数据,数据会存放在缓存中。
数据的增删改查都是针对缓存的数据进行的,并不会立即更新到物理表中
这样做是为了提高数据库IO性能
真正的提交要满足一定条件才会进行,例如缓存池已经写满
你想手动提交缓存,可直接调用checkpoint清除缓存进行物理提交。

chechpoint的机制,sqlserver\oracle\sybase都采用了
但好像会有一个这样的问题,就是如果你使用了数据库后台工具对数据进行更新,似乎这样会不经过缓存而直接更新数据库,导致物理表中的数据与缓存不一样
这时候如果你不手动调用checkpoint,将缓存写入数据库,你用程序对数据库的增删查改就会有偏差
不知道大家用数据库时遇到这种问题没有,反正我是遇到过,是在使用sybase时。

而且缓存设置越大,如果你提交的数据比较大,如图片时没问题,但如果你更新的数据都是小笔的字符型数据时,这样要很久才会写满缓存,最后将缓存写入物理表。
这个时候如果你用后台直接更新的物理表,缓存就与物理表存在较大差别,这个问题就很突出了

而数据的不一致将是灾难性的。

 

  • 写回答

1条回答 默认 最新

  • qq_41444638 2022-09-30 17:23
    关注

    是嘛,我好像在大学的时候遇到过,当时不知道为什么,也没深究,哈哈 懒

    评论

报告相同问题?

问题事件

  • 创建了问题 12月26日

悬赏问题

  • ¥30 求给定范围的全体素数p的(p-2)的连乘积
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页