cpu_index_tuple_cost和cpu_tuple_cost的值不同的原因是什么? 当读者已经在阅读那一页时,它不应该花费同样多的时间吗?

我查看了文档(https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-CPU-TUPLE-COST),我认为cpuindex_tuple_ost和cputuple_ost相同.

推荐答案

"Reader Head"和"Page"似乎表明磁盘I/O在这里起了作用,但它的成本参数是random_page_costseq_page_cost.cpu_index_tuple_costcpu_tuple_cost大约是处理单个索引或表项所花费的CPU时间.现在,索引元组通常比表元组小得多,因此估计较低的成本是合理的.

我深入研究了这个参数的历史,它是在2000年引入的,值为0.001,是cpu_tuple_cost值的十分之一.后来,人们认为这个值太小(见第discussion条),从2006年开始,第commit e4de635a2b条将缺省值更改为0.005.

Postgresql相关问答推荐

从子查询中的排序结果中获取前X行

在SqlalChemy中转义动态CamelCase场

将整数(以毫秒为单位的epoch时间)转换为PrimitiveDateTime

Postgres 查询指向国外数据工作者的分区表比直接查询 fdw 慢很多倍

如何使 Postgres 优化引擎具有确定性

在 jOOQ 中使用 $$ 引用字符串

无法使用golang在postgresql中使用自定义类型插入/更新数据

为什么不能超过 10 个并发连接到 Postgres RDS 数据库

Postgres 查询计划器不会使用更便宜的复合索引

如何在 PostgreSQL 的回归测试中测试 TYPE 发送和接收函数

psql中set、\set和\pset的区别

brew 程序更新恼人的错误信息

为什么 SQLAlchemy 不创建串行列?

使用 pg_dump 和 psql -U postgres db_name < ... 移动数据库会导致ERROR: relation "table_name" does not exist

如何在 postgres 模式中列出关系

从 PostgreSQL 序列中 Select 多个 id

你如何在postgresql中做mysqldump?

Postgres Npgsql 连接池

PostgreSQL 表变量

以声明方式从 Postgres 字符串中获取最后一个单词