ClickHouse 不让删数据?版本折叠合并树是怎么更新删除的
ClickHouse 查询快,但删除和更新一直是它的软肋。
VersionedCollapsingMergeTree 是官方给出的一个折中方案:不真删数据,而是再插一条「抵消行」,让后台合并时把新旧记录成对消掉。
我之前在一个用户状态表上踩过它的坑,SELECT * 出来的数据对不上,折腾了挺久才搞明白它的脾气。
ClickHouse 查询快,但删除和更新一直是它的软肋。
VersionedCollapsingMergeTree 是官方给出的一个折中方案:不真删数据,而是再插一条「抵消行」,让后台合并时把新旧记录成对消掉。
我之前在一个用户状态表上踩过它的坑,SELECT * 出来的数据对不上,折腾了挺久才搞明白它的脾气。
在 M1 的 Mac 上装 ClickHouse,最容易踩的坑是镜像架构对不上。
很多老教程还在用 yandex/clickhouse-server 这个镜像名,它早就改名了,而且不一定有 arm64 版本。
下面给两条路:图省事用 Docker,想要原生性能就用官方二进制。
求一组字符串的最长公共前缀,是 LeetCode 第 14 题。
题目很短:给你一个字符串数组,找出它们共有的最长前缀;没有就返回空字符串。
我第一次做的时候随手写了个横向扫描,过了,但总觉得不踏实。
给你一个字符串 s,要找出里面最长的那段回文子串。
这就是 LeetCode 第 5 题,面试里出现频率很高。
先说清楚两个容易混的概念。
子串是连续的,子序列可以不连续,这题要的是连续子串。
线上服务连不上,或者接口时不时超时,是日常里最磨人的一类问题。
现象看着都差不多,根因可能差出十万八千里:网卡、路由、防火墙、对端进程、甚至自己代码没关连接。瞎猜没用。
冒泡排序是一种通过反复比较相邻两个元素、把较大值逐步"浮"到末尾的排序算法。
注意这两个字:相邻。
这是它和选择排序最大的区别,也是最容易写错的地方。