PG 数据抽样 tablesample

9.5版本前 order by random() 功能可以实现但是性能较差。

9.5版本以后 支持tablesample 数据抽样 

select ... from table_name tablesample sampling_method (argument[, ...]) [ repeatable (seed)]

sampling_method 指抽样方法,主要有 system 和 bernoulli 
argument 指抽样百分比

system抽样方法基于数据块级别。

select ctid,* from test_sample tablesample system(0.01);

citd 第一位表示逻辑数据块编号,第二位表示逻辑块上的逻辑编号。

system抽样查询的时候会返回整个数据块的数据。所以抽样结果的总数不是总数量乘上抽样百分比。

因为返回数据以块为单位,所有返回的数据量偏差较大,性能高。

 

bernoulli抽样方法基于数据行

抽样的随机性好于system抽样,性能低于system抽样,同样存在返回数量的偏差。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值