zl程序教程

您现在的位置是:首页 >  工具

当前栏目

多阶魔方复原在数据优化中的应用

应用数据 优化 魔方 复原
2023-09-11 14:17:31 时间
背景

前一篇文章介绍了一个场景,利用多列索引,多种索引接口(GIN\BTREE\BRIN...)以及PostgreSQL内置的bitmapAnd, bitmapOr等手段,提升广告营销实时搜索性能,同时兼顾开发工作量。

《懒人推动社会进步 - 多列聚合, gin与数据分布(选择性)》

其中在讲到GIN索引的优化时,留了一个悬念,到底如何通过调整数据分布,降低GIN索引扫描的IO放大,提高扫描效率?

3、gin数据分布优化 

如果是普通类型,则线性相关越好,扫描或返回多条数据的效率越高。 

如果是多值类型(如数组、全文检索、TOKENs),则元素越集中(元素聚类分析,横坐标为行号,纵坐标为元素值,数据分布越集中),效率越高。 

元素集中通常不好实现,但是我们可以有集中方法来聚集数据, 

1. 根据元素的出现频率进行排序重组,当用户搜索高频词时,扫描的块更少,减少IO放大。 

2. 根据(被搜索元素的次数*命中条数)的值进行排序,按排在最前的元素进行聚集,逐级聚集。 

(以上方法可能比较烧脑,下次发一篇文档专门讲GIN的数据重组优化) 

聚集有什么用呢?如何聚集呢?

数据分布例子

例子

假设有6条记录,每条记录存储了一些VALUE(数组),6条记录方便演示。

pic

图形化如下

pic

当搜索包含2的数据时,需要扫描第1,2条记录。

当搜索包含1的数据时,需要扫描第1,3,5条记录。(1,3,5离散分布,即现实中包含1的数据,很可能在不同数据块中,那么需要扫描更多的数据块)。

接下来做一个简单的存储调整,将数据进行重排。

pic

图形化如下

pic

很显然,现在没有离散的数据了,对同一个元素来说,更加的紧密相连,例如搜索包含1的数据时,他们是相邻的记录(现实中极有可能在同一个数据块中)。

说到数据重分布,就涉及到聚集的问题了,如何让同一个元素,尽量的靠在一起呢?

你需要了解一些数据科学计算的知识,可以参考一下:

《数据库任督二脉 - 数据与计算的生态融合》

真实情况下,几乎不可能做到每一个元素的行都是紧密相邻的,就像玩“不可复原的(有BUG的)”多阶魔方。你怎么转,都不可能做到面面俱到。

pic

我们只能通过科学计算,尽可能的找到最终态较好的数据分布状态。


巧用千寻位置GNSS软件| 数据链工作状态轻松看 在日常施工中,千寻位置GNSS软件中的「工作状态」功能,可以帮助测绘工作人员查看当前接收机所选择的数据链的作业信息和状态。本期将为各位测友们详细介绍不同工作模式的「工作状态」所呈现的信息。
CVPR 2021 | 性能炸裂!MPRNet:多阶段渐进式图像恢复 在本文中,我们提出了一种新颖的协同设计,可以最佳地平衡这些相互竞争的目标。我们的主要建议是一个多阶段体系结构,该体系结构逐步学习降级输入的恢复特征,从而将整个恢复过程分解为更易于管理的步骤。
他们用一款小学生都能玩的游戏,重建了圆明园 对于大多数人而言,圆明园不过是一处被毁败的遗迹。 但在一群游戏玩家眼里,它是一个广袤丰富的园林,有清可见底的湖水,波云诡谲的建筑,流光溢彩的瓦砾,郁郁葱葱的树林。 (视频为团队制作的视频——《万园之园·圆明园》) 如此真实的世界,是这群玩家利用 Minecraft,一个开放的沙盘游戏,一转一瓦堆砌起来的。 和团队的名字——史诗工坊一样,从萌生想法到第一期工程落地,他们花了近两年的时间去完成圆明园历史风光的重建。
去 “马赛克” 工具横空出世, 一秒还原! 如果你认为将密码或其他私密文本数据像素化就能保护它们不被窥见,那你真是太天真了,你的信息并没有你想象的那么安全。像素化(也称为马赛克)是一种常用的手段,可以大幅降低图像敏感区域的分辨率来隐藏信息。
你也可以拥有「宋慧乔妆」,美图MakeupGan妆容迁移算法开启个性化妆容时代 不仅完美地迁移眼影、眉毛、口红等基础妆容,而且能很好地处理美瞳、睫毛、卧蚕等细腻细节,美图影像实验室(MTlab)自主研发的这个全新妆容迁移算法可以令爱美的你尝试各种类型和风格的模特妆容,最终找到适合自己的完美妆容。
顷刻之间 「复原时光」,美图画质修复算法V2全新上线 美图影像研究院(MT Lab)正式推出美图画质修复算法 V2(升级版),全新迭代版本取得重大技术突破,目前已在美图秀秀证件照、工具箱及视频剪辑(照片)中上线该算法。