1. SYSTEM 方法:
- SYSTEM 方法是 PostgreSQL 默认的采样方法,使用系统底层的块或行来进行采样。
- 不需要额外的参数。
示例:
SELECT * FROM your_table TABLESAMPLE SYSTEM(10);
2. BERNOULLI 方法:
- BERNOULLI 方法使用伯努利分布来确定是否包括一行。
- 需要一个参数,即采样的概率,表示以多大的概率选择一行。取值范围是 0 到 100。
示例:
SELECT * FROM your_table TABLESAMPLE BERNOULLI(5);
请注意,TABLESAMPLE 方法的实现可能因 PostgreSQL 版本而异。在 PostgreSQL 9.5 及更高版本中引入了这一功能,而之前的版本可能不支持。
此外,PostgreSQL 中也有一些用于统计的系统函数,可以通过这些函数对表的数据进行统计,但它们不是直接用于 TABLESAMPLE 的。例如,你可以使用 pg_statistic 表来获取关于表列的统计信息。
总的来说,根据具体需求,你可以选择适当的采样方法和参数来优化查询性能。在实践中,最好通过实验和性能测试来确定最适合你的数据和查询的采样策略。
转载请注明出处:http://www.zyzy.cn/article/detail/8923/PostgreSQL