摘要:
周末时间基本都在带娃,断更了一段时间,难得有点时间还是得有毅力坚持写,坚持总结。 最近公司在拓展电商相关业务,其中一个环节是物流发货。物流打包环节有一个需求是希望能给运营同事一个小工具能快速计算最优的包裹组合。 我们这里不关注过多业务细节,只是把这个问题抽象总结一下。 问题: 假设我们有如下4种规格 阅读全文
摘要:
最近同事发现一个业务状态部分更新的bug,这个bug会导致两张表的数据一致性问题。花了些时间去查问题的原因,现在总结下里面遇到的知识点原理。 问题一:事务没生效 我们先看一段实例代码,来说明下问题: @Service public class PaymentServiceImpl implement 阅读全文
摘要:
本文总结了一些MySQL索引的基本概念和原理,如果可以快速清晰回答这些问题可以出门左转提提宝贵建议。 什么是索引?索引为什么查询快,索引的数据结构是什么? 聚簇索引/非聚簇索引区别? 什么是覆盖索引? 唯一索引/普通索引? 单列索引/联合索引区别? Full-index全文索引? 什么是下推索引? 阅读全文
摘要:
Snowflake 世界上没有两片完全相同的雪花。 — twitter Snowflake原理 这种方案把64-bit分别划分成多段,分开来标示机器、时间等,比如在snowflake中的64-bit分别表示如下图所示: 在java里,64bit正好是long类型的大小。 41-bit的时间可以表 阅读全文
摘要:
分布式ID 生成的ID使用场景 几乎所有的业务系统,都有生成一个记录标识的需求,例如:message_id, order_id。这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。 在数据量大时往往需要分库分表,这些ID经常作为 阅读全文