Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Database PostgreSQL事务的内部安排_Database_Postgresql_Transactions - Fatal编程技术网

Database PostgreSQL事务的内部安排

Database PostgreSQL事务的内部安排,database,postgresql,transactions,Database,Postgresql,Transactions,我正在使用PostgreSQL。我的问题是关于交易的 让我开始事务并在表中插入几行。现在,这些行可以在事务内部访问,并且在commit之后,它们也可以在事务外部看到 所以,我的问题是: PostgreSQL如何存储表的中间状态 PostgreSQL如何将真实数据库状态与事务的中间状态合并 假设我有一个很大的事务,里面有很多数据操作(ins、upd、del)。何时执行所有这些数据修改操作(在事务期间或提交后立即执行) 现在我认为答案如下: 操作是在事务和 …它们的结果存储到临时表中,临时表(与旧数

我正在使用PostgreSQL。我的问题是关于交易的

让我开始事务并在表中插入几行。现在,这些行可以在事务内部访问,并且在
commit
之后,它们也可以在事务外部看到

所以,我的问题是:

  • PostgreSQL如何存储表的中间状态
  • PostgreSQL如何将真实数据库状态与事务的中间状态合并
  • 假设我有一个很大的事务,里面有很多数据操作(ins、upd、del)。何时执行所有这些数据修改操作(在事务期间或提交后立即执行)
  • 现在我认为答案如下:

  • 操作是在事务和
  • …它们的结果存储到临时表中,临时表(与旧数据库状态一起)形成可从事务访问的中间表
  • 提交后,临时表将与旧状态合并(不知道如何合并)并删除
  • 请给我正确的答案或链接到文件(书),我可以找到它。 谢谢大家!

    你说的“中间状态”是什么意思?PostgreSQL MVCC模型是轻量级的,在元组中使用xmin/xmax来存储行事务可见性(简单地说)——您需要知道的是文档:您所说的“中间状态”是什么意思?PostgreSQL MVCC模型是轻量级的,它使用xmin/xmaxin元组来存储行事务可见性(简单地说)——您需要知道的是文档: