首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指数如何与MVCC保持一致?

指数如何与MVCC保持一致?
EN

Stack Overflow用户
提问于 2011-01-30 07:20:10
回答 1查看 1.1K关注 0票数 3

你好,紫罗兰,

  • 据我理解(希望我是不对的),索引的更改不能是MVCCed。
  • 我想知道,对于大唱片来说,这是否也是正确的,因为复制可能是昂贵的。
  • 由于记录是通过索引(通常)访问的,MVCC是如何有效的?
  • 例如,索引是否跟踪不同版本的MVCCed记录?

最近对这个问题有什么好的认识吗?真的很感激!

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-03 19:54:53

  1. 索引本身可以有两个记录,这些记录可以在返回之前被删除。因此,在这种情况下,ondex不能单独用于获取记录(由PostGres完成的MVCC )。InnoDB/Oracle只保留一个版本的数据/索引,并使用undo部分为旧事务重新构建旧版本。
  2. 在通常使用DB时,您不会有太多的副本,因为定期地,副本将被垃圾收集(在PostGres中),而Oracle将有撤销部分,在事务中止/提交时将被重用。如果您有太多的长时间运行的事务,显然您会有问题。
  3. 索引是为了加快访问速度,更快地找到记录,不需要触摸所有这些,索引在第一次通过时就不需要准确,您可能需要查看元组来查看它在一个特定事务中是否有效(比如在PostGres中)。racle或InnoDB甚至索引都是版本化的,所以您可以从索引本身获取数据。

阅读这篇文章详细介绍了实现PresGres和Oracle/InnoDB的两种方法。

InnoDB MVCC这里的评论也很有用

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4841692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档