postgresql取随机记录
来源:互联网 发布:莆田精仿鞋淘宝网店 编辑:程序博客网 时间:2024/06/02 02:56
原创,转载请注明出处!
postgresql取随机记录有以下几种方式,请参阅:
http://blog.chinaunix.net/uid-20332519-id-5616589.html
另一种相对简单的算法如下:
explain (analyze,verbose,costs,buffers,timing)
select * from 表名 where 主键=ANY((
with cte as(
select ( (random() * (max_id - min_id))::bigint + min_id ) as id from generate_series(1,50) as tmp2,
(select max(主键) as max_id,min(主键) as min_id from 表名) as tmp1
) select array_agg(id) from cte
)::bigint[]) limit 10;
其中generate_series(1,50)获取50行目的是防止最小编号和最大编号之间有删除记录的情况,如果被删除的记录比较多,主键不连续,可适当加大generate_series(1,100).
主键只支持int和bigint类型,其它类型未测试.
总数据量约为4亿时,随机获取10条记录的执行计划和执行时间:
注意:取随机记录sharead_buffer命中率比较低,大多数情况下都会读取磁盘(随机读方式)
阅读全文
0 0
- postgresql取随机记录
- 取随机记录.
- 取随机记录SQL
- 取当天随机记录
- 随机取一些记录
- 数据库 随机取记录
- oracle随机取记录
- ORACLE随机取记录
- SQL数据随机取记录
- 随机取数据库中的记录
- 随机取数据库中的记录
- Java List 随机取记录
- SQL语句随机取记录
- SQL SERVER随机取记录
- Java List 随机取记录
- 随机从数据库中选取记录
- 随机取每天 前10条记录
- 一个oracle随机取记录的问题
- RTTI
- postgresql使用SSD页大小优化
- ES6---扩展运算符和rest‘...’(三点运算符),在数组、函数、set/map等中的应用
- PostgreSQL调整检查点的基础
- postgresql内存表
- postgresql取随机记录
- postgresql timestamp timestamptz 使用注意事项
- Eureka error "java.net.UnknownHostException: c1438e0d5866
- 清空postgresql shared_buffers
- postgresql10改进说明(翻译)
- PostgreSQL Windows简易安装
- PostgreSQL C风格的自定义函数FuncCallContext结构体描述及示例
- Spring核心类介绍
- PostgreSQL C风格函数TEXT优化