gpt4 book ai didi

database - 指数如何应对 MVCC?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:11 26 4
gpt4 key购买 nike

问候溢出者,

  • 根据我的理解(我希望我是不对的)不能对索引进行 MVCC 更改。
  • 我想知道这是否也适用于大记录,因为副本可能很昂贵。
  • 由于记录是通过索引访问的(通常),MVCC 如何才能有效?
  • 例如,索引是否跟踪不同版本的 MVCCed 记录?

最近有关于这个主题的好读物吗?非常感谢!

问候

最佳答案

  1. 索引本身可以有返回前可以被修剪的记录。所以在这种情况下不能单独使用 ondex 来获取记录(PostGres 完成的 MVCC)。 InnoDB/Oracle 仅保留一个版本的数据/索引,并使用撤消部分为旧事务重建旧版本。

  2. 当通常使用 DB 时,您不会有太多副本,因为定期副本将被垃圾收集(在 PostGres 中)并且 Oracle/InnoDB 将具有撤消部分,这些部分将在事务中止/提交时重复使用。如果您有太多长时间运行的事务,显然您会遇到问题。

  3. 索引是为了加快访问速度,更快地找到记录,无需全部触及,索引在第一次通过时不需要准确,您可能需要查看元组以查看其在特定事务中是否有效或不(就像在 PostGres 中一样)。 racle 或 InnoDB 甚至索引都是版本化的,因此您可以从索引本身获取数据。

Read this详细了解两种实现 MVCC 的方法(PresGres 和 Oracle/InnoDB)。

InnoDB MVCCcomments here也很有用

PS:我不是 mysql/oracle/postgres 内部专家,仍在学习它们是如何工作的。

关于database - 指数如何应对 MVCC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4841692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com