数据库
文章平均质量分 75
聊一些工作中碰到的关于数据库的任何事情
jmuhe
这个作者很懒,什么都没留下…
展开
-
pg 唯一性约束修复
标题的描述有点自相矛盾,唯一索引中怎么会有重复数据呢。先说一下背景,之前我用的 pg 镜像是 postgres:11.18-bullseye,后来被升级成了 postgres:11.20-alpine3.18,这个造成的其中一个后果简而言之是 pg 对字符串的排序发生了变化,比如原先认为 A > B,现在则变成了 A < B。由此,就有可能破坏数据的唯一性约束。不仅如此,只要索引列包含字符串类型的字段,也会有问题。为了方便继续描述,假设有个 test 表,结构如下。原创 2024-09-01 22:35:59 · 1038 阅读 · 0 评论 -
数据存储闲聊
写哪算哪,有些地方不正确的,欢迎指正。逻辑混乱,不喜忽喷。工作中碰到过两类服务,一个是数据密集型的,一个是计算密集型的。计算密集型的是我工作的第一家公司,当时主要是处理信息流(包括图文和视频)的各种特征识别。每一种特征的识别都是一个独立的服务,这些服务没有自己的数据库。所有信息都存储在一个公共数据库里,用的是 hbase,在 hbase 的基础上加了缓存。数据密集型的系统就比较多了,各种工作台基本上都是数据密集型的,以数据为核心,负责接收数据,转换数据,写入数据。原创 2024-08-25 15:44:47 · 755 阅读 · 0 评论 -
postgresql 的递归查询
postgresql 的递归查询功能很强大,可以实现传统 sql 无法实现的事情。那递归查询的执行逻辑是什么呢?在递归查询中,我们一般会用到 union 或者 union all,他们两者之间的区别是什么呢?原创 2023-08-20 14:25:46 · 1231 阅读 · 0 评论 -
MySQL 间隙锁
在辅助索引中,值的排序是先根据索引字段,然后再按主键排序,所以上面的顺序就是该索引值的顺序。所以对于 (16, 7) 这一值而言,他的左右间隙分别是 (12, 3)和(23, 5),若有查询语句如下。之前一直对间隙锁的锁定范围很迷糊,感觉不可控,最近又看了下相关文章,再加上测试,发现间隙锁真的只是顾名思义,间隙锁就是间隙锁。则 (12, 3) < x <= (23, 5) 的范围内都会被加锁,也就意味着,如下的组合是无法写入的。先说结论,间隙锁只会在语句用到的索引上添加,不管这个是辅助索引还是聚集索引。原创 2024-05-16 21:25:32 · 381 阅读 · 1 评论