首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >idx_tup_read和idx_tup_fetch在Postgres上的差异

idx_tup_read和idx_tup_fetch在Postgres上的差异
EN

Database Administration用户
提问于 2012-05-15 06:50:20
回答 3查看 10.2K关注 0票数 17

关于Postgres 8.4当你这样做:

代码语言:javascript
复制
select * from pg_stat_all_indexes where relname = 'table_name';

它返回字段idx_tup_read和idx_tup_fetch,有什么区别?

EN

回答 3

Database Administration用户

回答已采纳

发布于 2012-05-15 07:22:15

当查看视图的源代码时,您将看到idx_tup_read是调用pg_stat_get_tuples_returned()的结果,idx_tup_fetch是调用pg_stat_get_tuples_fetched()的结果

手册对这两个函数的描述如下:

pg_stat_get_tuples_returned(oid)参数为表时顺序扫描读取的行数;参数为索引时返回的索引条目数;参数为表时通过位图扫描获取的表行数;或在参数为索引时使用索引获取的表行数

票数 17
EN

Database Administration用户

发布于 2017-09-27 06:26:23

来自postgresql文档

代码语言:javascript
复制
idx_tup_read is number of index entries returned by scans on this index
idx_tup_fetch is number of live table rows fetched by simple index scans using this index

因此,reads是指索引返回所需行的位置,而fetches是索引返回表行本身的位置。

票数 5
EN

Database Administration用户

发布于 2017-08-02 10:17:03

官方文档页面说,它们之间的区别出现了:

  1. 当索引涉及到位图索引扫描时
  2. 如果使用索引获取任何已死行或尚未提交的行。
  3. 如果任何堆取都是通过仅索引扫描避免的。
  4. 当优化器的检查访问索引时

在所有这些情况下,idx_tup_read都比idx_tup_fetch大。

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

https://dba.stackexchange.com/questions/17863

复制
相关文章

相似问题

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