Recent Posts

理解数据库扫描方法 - 利用扫描方法对数据存储进行优化

3 minute read

背景 假设一个黑盒中有三种水果:苹果,香蕉、菠萝。一共有若干个水果。 假设你需要拿10个苹果,你需要拿多少次呢? 最差的情况,你可能需要把所有的水果都拿完。(全表扫描,扫到最后才拿到10个或者不足10个) 最好的情况,你可能10次就拿完。(全表扫描,扫10行全都是苹果。) PS:索引扫描这里就不说了,因为...

Greenplum 轨迹相似(伴随分析)

2 minute read

背景 《阿里云 PostgreSQL 产品生态;案例、开发实践、管理实践、学习资料、学习视频 - 珍藏级》 以上有个CASE是讲:如何找出在同一辆车内的人,实际上就是通过车辆、人物的轨迹点数据,进行多轮的求交集,将结果收敛到一个较小的范围。 Greenplum伴随分析测试 1、创建测试表 create t...

PostgreSQL + PostGIS 时态分析

6 minute read

背景 假设我们有一些物体的轨迹数据(经纬度、measure(通常存为epoch时间戳)),比如车辆、人、传感器等。 给定一个物体在某个时间范围的轨迹数据,查找有没有与这个物体接触的轨迹,并按亲密度排序。 http://postgis.net/docs/manual-2.4/geometry_distance_...

Greenplum & PostgreSQL UPSERT udf 实现 - 2 batch批量模式

5 minute read

背景 《Greenplum & PostgreSQL UPSERT udf 实现 - 1 单行模式》 批量模式,接口函数的输入参数如下 1、schemaname 2、表名 3、分布键名(数组) 4、每一次请求的内容,JSON或JSONB 数组。(每次请求的字段可能各不相同,所以务必每个JSON或...

PostgreSQL PostGIS 的5种空间距离排序(knn)算法

2 minute read

背景 PostgreSQL GiST索引支持排序接口,可以支撑空间、标准、数组、文本向量、文本等类型的排序。 分别表示: 1、给定一空间位置,按空间距离排序输出 2、给定一数组、全文检索值、字符串,按数组、全文检索、字符串相似度排序输出 3、给定一标准类型的值,按标准类型的距离排序 数据库目前支持哪些排...

Greenplum & PostgreSQL UPSERT udf 实现 - 1 单行模式

6 minute read

背景 PostgreSQL 9.5 开始支持了upsert的语法, PostgreSQL 9.5 以前的版本,可以使用CTE语法来代替insert into on conflict(upsert),实现UPSERT。或者使用UDF来实现。 [《HTAP数据库 PostgreSQL...

CentOS 7 动态调节CPU频率 - 给CPU升降频

2 minute read

背景 以下内容出自互联网: https://blog.csdn.net/zhenwenxian/article/details/6196943 cpufreq是一个动态调整cpu频率的模块,系统启动时生成一个文件夹/sys/devices/system/cpu/cpu0/cpufreq/,里面有几个文件, ...