
InnoDB 表的数据写入顺序能和 B+树索引的叶子节点顺序一致的话,这时候存取效率是最高的。
1 lenqu 2020-08-11 14:23:55 +08:00 个人观点,如果表数据不存在整列删除情况,主键 id 就很合适 |
2 wellsc 2020-08-11 14:24:26 +08:00 via iPhone 雪花也可以自增的 |
3 ifsclimbing 2020-08-11 14:33:48 +08:00 分库分表用 雪花 id 吧 |
4 opengps 2020-08-11 14:44:21 +08:00 怕爬虫规律性穷举的一定不能用自增 id |
5 damai0419 2020-08-11 16:23:16 +08:00 雪花是递增趋势. 不是严格递增的吧. 不分库分表,感觉没必要上分布式 id. |
6 wangyzj 2020-08-11 16:24:45 +08:00 业务量不是非常巨大,主键自增足够了 |
7 love 2020-08-11 16:26:16 +08:00 |
8 egfegdfr 2020-08-11 16:40:44 +08:00 看数据的重要性吧,一些非重要的数据就直接自增了(角色、权限), 重要数据用雪花 id (用户、产品、订单、 支付流水) |
9 takemeaway 2020-08-11 17:12:31 +08:00 |
10 qwerthhusn 2020-08-11 17:20:42 +08:00 用雪花,返回 json 时还要处理下格式,不然 js 读到大数字然后精度不足导致数据不对。。。 |
11 PopRain 2020-08-11 17:20:59 +08:00 数据库主键最大的问题是获取主键需要访问数据库,如果有主从表,比较麻烦 |
12 guisheng &nsp; 2020-08-11 17:21:02 +08:00 目前采用主键自增+hashids 加密(就是处理麻烦了点其它目前无感)。 |
13 sunmoon1983 2020-08-11 20:26:18 +08:00 @qwerthhusn 对,我曾经也被这个问题困扰了,用了 json-bigint 也不好使,没办法,只能在后台先把 bigint 转成字符串再返回给前端 |
14 EminemW 2020-08-11 21:55:37 +08:00 via iPhone 一起用 |
15 littlewing 2020-08-12 00:52:15 +08:00 主键自增+一个雪花 ID |
16 yidinghe 2020-08-12 01:08:30 +08:00 via Android 有需要 ID 严格递增的话就用自增 |
17 locoz 2020-08-12 01:42:51 +08:00 这问题在前面这个帖子( t/686977 )里的文章和回复中有一堆例子,还有各种性能问题、部署问题之类的讨论,你可以看看。 @takemeaway #9 能按 ID 顺序爬当然直接穷举 ID 啊,数据又全又不需要管列表页,增量还方便... |
18 xuanbg 2020-08-12 08:44:10 +08:00 有条件当然不要用数据库自增。用自增有两个坏处: 1 、id 可猜测,不对,应该是可预测。简直是为别人爬数据大开方便之门。 2 、新增数据返回 id 还得额外费手脚,写主从数据时很恶心。 |
20 securityCoding 2020-08-12 09:51:41 +08:00 @sunmoon1983 java 的话统一配置一下序列化策略就行了 |
21 keshawnvan 2020-08-12 10:35:09 +08:00 分布式场景用雪花挺好的: https://juejin.im/post/6844904132550066183 |
22 594duck 2020-08-12 11:27:44 +08:00 如果不是百库百表而且要强一致没必要使用雪花 ID 吧。 |
23 sunmoon1983 2020-08-12 12:56:18 +08:00 @securityCoding 我用的 go,我不知道有没有那么 NB 的功能 |
24 inwar 2020-08-12 13:47:12 +08:00 via Android @sunmoon1983 如果是 jackson 可以定义 Long 类型的序列化方式,直接转成 string |
25 yourssheng 2020-08-12 14:21:55 +08:00 @damai0419 数据库主键也不是严格递增也会有 1,2,4,5 这种情况 |