PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

F.46. tsm_system_rows — TABLESAMPLE 的 SYSTEM_ROWS 采样方法 #

F.46.1. 示例

tsm_system_rows 模块提供表采样方法 SYSTEM_ROWS,该方法可用于 SELECT 命令的 TABLESAMPLE 子句。

该表采样方法接受一个整数参数,表示要读取的最大行数。所得样本总是恰好包含指定数量的行;如果表中没有足够的行,则选中整个表。

与内置的 SYSTEM 采样方法一样,SYSTEM_ROWS 执行块级采样,因此样本并非完全随机,可能受到聚簇效应的影响,在仅请求少量行时尤为明显。

SYSTEM_ROWS 不支持 REPEATABLE 子句。

该模块被视为“可信”模块,也就是说,拥有当前数据库 CREATE 权限的非超级用户也可以安装它。

F.46.1. 示例 #

下面是使用 SYSTEM_ROWS 对表进行采样的示例。首先安装扩展:

CREATE EXTENSION tsm_system_rows;

然后即可在 SELECT 命令中使用,例如:

SELECT * FROM my_table TABLESAMPLE SYSTEM_ROWS(100);

该命令将从表 my_table 返回一个 100 行的样本(如果表中可见行数不足 100,则返回其所有行)。