当前位置:首页 > 每日看点 > 正文内容

postgresql也很强大,为何在中国大陆,mysql成为主流,postgresql屈居二线呢?

卡卷网1年前 (2025-01-17)每日看点216

普通人用pg会碰到稀奇古怪的障碍,一气之下就退回mysql了呗。我的一个小项目就很能说明这一点:

这是我弄的一个人练手项目,自动从贴吧采集图片做成梗图视频发抖音。用数据库来存图片及其对应tensor,并用cos相似度去重。

最开始用的是mysql,但当表来到1t左右,由于每张图片都要全表扫相似度,添加图片变得特别特别慢。当然这是算法本身的问题,但是抛开这些,select、update本身的性能下降也是肉眼可见的。

  • 是是是,我知道向量搜索用fasis或者es会好很多,但我这毕竟是小项目不想把东西放的东一块西一块的。于是我决定跳坑pg。用上pgvector插件提供的相似度索引后,一切变得非常丝滑。
  • 基于同样的缘由我也不想把图片和相应信息分开放。

直到我单表体积到了3.6T

我一看我草硬盘空间要没了,那么把打分低的图片都删掉呗。

然后我碰见了第一个不可理喻的事情:

删除速率极低,1秒5条!

  • 然而explain analyze后发现Plan阶段是瞬间完成的。

但是这难不倒程序员嘛,我tmux跑了个分batch删除的脚本睡觉去了。

起来一看,令我震惊的事情发生了:

删掉了80%的条目后,占用空间一点没降!

于是我赶紧谷歌,发现原来pg的删除原来只是简单标记了下,需要vacuum才能删除。

那就vacuum呗。然后我发现过程中表几乎无法被访问,只好暂停了所有任务,跑了快2天才把vacuum跑完。为了让腾空间立即起效我还冒险删掉了zfs所有快照。

然后我震惊的发现:

vacuum完后体积一点没降!

这tmd就说不通,可能的解释是pg保存了删除的事务日志以供还原,但我tmd哪里等得起,vacuum full走起。

结果你大概猜的到:

vacuum full跑了一半就因为用光了所有空间失败了

这tm简直难以理喻,毕竟新表才200g而我还有900g空闲空间。

我谷歌半天后,得到的结论是:TM vacuum full也给删除写了一大堆事务日志,于是就爆了。

最后我只能新建了一个表,用脚本完成了数据迁移。





你以为这就结束了?

naive!

写了个脚本每天自动删重复图片后,我也以为事情就结束了,但没过几天我又双叒叕震惊的发现:

卧槽update怎么极慢

经过一番谷歌后我发现:原来pg的update就是删除再插入。于是简单变更个published字段就相当于把昂贵的tensor再重新插入一边。

而且我发现set published_but_reuseable=id in any(%s)的方式,速度远慢于我直接更新那几个id。合着优化器根本没优化呗。那岂不是相当于天天反复插全表?我每天1快照存着都没爆空间真得感谢zfs去重功能做得好。

麻了,那就改呗,丧失点容错性我还能忍。




你以为这就完了?

naive!

为了改这些我熬了好几夜,惊奇的发现每到0点数据库就卡到读不出来数据,弄得我还以为是查询写呲了。

你猜这么着?auto vacuum!!!而且:

就200g数据auto vacuum一跑就1个小时,每天来一次,期间业务基本都跑不了!

我承认我在nas上部署db性能是不好,但也不至于此啊,sqlite都没这么差吧!



最后我就非常识趣的圆润滚回mysql了,大不了不做去重了!

(有些结论是熬夜时得出的,现在回看可能受到了auto vacuum的影响。如果被误导了别骂我,直接打电话骂这个雷打不动1小时的auto vacuum去)

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/9552.html

分享给朋友:

相关文章

免费流量才是王道 独立网站如何正确“花钱” ?

免费流量才是王道 独立网站如何正确“花钱” ?

获客难、广告成本高、效益差是平台卖家普遍遇到的发展瓶颈,由此也让不少卖家转向独立站之路。 由平台转向独立站、曾做到谷歌全球搜索排名前三的成人用品独立站卖家林健认为,独立站...

PS有哪些实用小技巧,小白也能一学就会?

PS有哪些实用小技巧,小白也能一学就会?

不看后悔系列!本篇分享25个PS实用的技巧!不能保证每个都能让你惊艳,但是却是我用心写出来的,希望对你有帮助。另外我的知乎也写了接近200篇PS的技巧,超级合集分享!我目前正在带一个PS/Ai的软件训练营,两个多月搞定两大软件的学习详细的内...

自己拥有一台服务器可以做哪些很酷的事情?

自己拥有一台服务器可以做哪些很酷的事情?

我就有一台,跑了两年了,ipv6 ddns 网络,加虚拟化平台.跑了个 winserver 和 ubuntu 服务器。稳的雅皮!拆掉后盖,散热更好。烟盒固定硬盘。键盘防止灰尘掉落。电池拆掉,屏幕拆掉,也是散热考虑。屏幕拿去做便携副屏了。换...

数据分析人员需要掌握sql到什么程度?

数据分析人员需要掌握sql到什么程度?

能熟练用SQL进行统计分析,包括基本查询语句,聚合函数,连接,子查询,窗口函数等。作为现互联网的数据打工人,接下来我从SQL必知必会和SQL学习方法两个方面来详细介绍~注意:对于传统企业和一些小公司,数据量级并不太大,这时只要掌握Excel...

OLED、QLED还是Mini LED?如何在今年双十一选购一款最适合自己的电视?

OLED、QLED还是Mini LED?如何在今年双十一选购一款最适合自己的电视?

我家旧电视用了好几年了,最近毛病越来愈多,动不动就黑屏,让人特别扫兴。这阵子和家人商量着,趁着现在国家有家电补贴,再加双11大促,不如换一台好一点的新电视,而现在MiniLED技术成熟,很多电视都升级MiniLED了,无论在画面亮度、细节、...

大家用的内网穿透工具收费高不高?

zerotier,免费,可全速直连,对不会搞的不友好,会了就很友好,一次安装到处乱用。ipv6,超速支撑,相当友好,有人要是连不上,告诉他用手机热点上,基本移动通信上,都支持了。问我?我两个都用,大流量需要局域网环境下zerotier,小流...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。