Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 博士后的读者和作者-并发_Postgresql - Fatal编程技术网

Postgresql 博士后的读者和作者-并发

Postgresql 博士后的读者和作者-并发,postgresql,Postgresql,PostgresSQL说: 读者不会阻止编写者,编写者也不会阻止用户 让我们假设可序列化隔离级别 太好了!但是,这怎么可能呢 在拍摄阅读器快照后,阅读器看不到写入程序提交的更改 因此,读卡器不需要在其事务期间被阻止,因为他有自己的快照 但是。。。。是否正在拍摄快照阻止?看起来它一定是阻塞的,因为,否则,如果任何写入程序在创建快照期间提交更改,快照可能会不稳定 那么,这是否意味着: 读者不会阻止编写者,编写者也不会阻止用户 …但要迅速采取行动 ? 请告诉我:)Postgres使用(MVCC)来处

PostgresSQL说:

读者不会阻止编写者,编写者也不会阻止用户

让我们假设可序列化隔离级别

太好了!但是,这怎么可能呢

  • 在拍摄阅读器快照后,阅读器看不到写入程序提交的更改
  • 因此,读卡器不需要在其事务期间被阻止,因为他有自己的快照
  • 但是。。。。是否正在拍摄快照阻止?看起来它一定是阻塞的,因为,否则,如果任何写入程序在创建快照期间提交更改,快照可能会不稳定

  • 那么,这是否意味着:

    读者不会阻止编写者,编写者也不会阻止用户

  • …但要迅速采取行动

    ?

    请告诉我:)

    Postgres使用(MVCC)来处理并发性。简单地说,这意味着更新实际上并不修改现有数据,而是将其标记为“已删除”,用当前事务ID标记,并创建一个全新的记录。以前的版本仍然存在,需要它的人仍然可以看到

    所以“拍摄快照”实际上并不涉及复制任何数据;这或多或少只是一个记录该时间点所有未提交事务的ID的问题,这样服务器就可以在扫描表时过滤掉它们的影响

    要想得到更全面的解释,请查看布鲁斯·莫健的。

    可能值得一读。