数据库:Oracle 前提:假定100万行的记录,在最后一行有一个数据a=1. 实验:你在9:00的时候查找数据,9:05的时候查到最后一行:但是,在9:01的时候有人修改了最后一行数据并提交(commit),改为a=2,瞬间完成. 问题:在9:05的时候你查到的a的值是多少? 对于Oracle数据库来说,永远是请求那一刻的数据.所以答案是1. 原理:用户发起的查询带有时间戳SCN,查询的SCN会跟每行记录的数据块头的SCN对比,如果发现是在查询时间之后做了更改,就会去该记录对应的undo区域,…