而第二种情况之前有一种很简单粗暴的解决办法,就是加锁但是这样的效率很低,而mvcc机制则是将表中每次更改的记录都保存下来,如果有多个用户进行读写操作,那么读数据的用户所看到的只会是历史数据。执行写操作的用户只要事务没有提交,在事务中所执行的变更对于其他用户来说都是不可见的。
读未提交 Read uncommitted
这个级别可能会遇到一个问题“脏读”,就是a事务中读取到了b事务中更改的数据,此时b事务回滚a事务读到的数据最终未被更改。而a事务后续所有基于这个数据的操作都是错误的。这个就是脏读。
读已提交 Read committed
举个例子a事务有两个查询x表的数据,第一次查询值为1。此时b事务执行update修改x表值为2。a事务的第二个查询的值就是2。
读可重复 Repeatable read
举个例子a事务有两个查询x表的数据,第一次查询值为1。此时b事务执行update修改x表值为2。a事务的第二个查询的值还是1。明明已经被修改但是查询的结果还是未修改的的值,类似这样的结果就是幻读。(在gp中此隔离级别不会出现幻读)
序列化 Serializable
在greenplum中每一行数据,有4个隐藏字段。虽然这四个字段是隐藏的,但可以访问。
cmin和cmax :标识在同一个事务中多个语句命令的序列值,从0开始,用于同一个事务中实现版本可见性判断。
建表:
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129407.html
Pgsql表膨胀的产生及处理 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; marg...
聊聊PostgreSQL事务id那点事 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
PostgreSQL锁浅析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margi...
摘要:三年百度,五年阿里,阿里架构师浅谈我是如何顺利进入前些天在我群里认识了以为挺有意思的老哥,他也是工作年多技术和面试都不差,最近也是在找工作,是从京城来魔都的,也和他捞了不少。 说来惭愧,也不怕你们笑话。做开发8年多,到目前还是一名不折不扣的扫地僧。年前的辞职,到现在还在家静养中。其实也没什么,就是回家总结一下自己这些年来在外工作与面试等做一个简单的总结与反思。做一下自己后面一个人生规划...
摘要:小明马上开发完毕,成功上线。下班过后,小明回想大红说的话,什么是间隙锁,什么是插入意向锁,看来作为开发者对数据库不应该只会写啊,不然遇到一些疑难杂症完全没法解决啊。破坏了数据库中的隔离性。 1.锁? 1.1何为锁 锁在现实中的意义为:封闭的器物,以钥匙或暗码开启。在计算机中的锁一般用来管理对共享资源的并发访问,比如我们java同学熟悉的Lock,synchronized等都是我们常见的...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1858·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20