高级程序员为什么喜欢建表的时候加个 ext 字段?

2023-09-25 15:07:36 +08:00
 yuyang1992test

扩展字段,到时候有新的需求再加不可以吗?

12283 次点击
所在节点    程序员
101 条回复
samin
2023-09-26 09:50:38 +08:00
那你这高级程序员经验还不够,一般有经验都加 ext1,ext2,ext3 ,为什么没有 4 ? 老祖宗说过 事不过三
oneisall8955
2023-09-26 09:51:29 +08:00
@pannanxu 即使 mybatis 或 jpa 可以指定 column_name
如果要写 mapper 或 native sql 的呢?即使代码里面没有写,自己查表数据时候也得写吧
况且还会与别的团队,或新入职员工交流呢
zdking08135
2023-09-26 09:52:30 +08:00
@tramm
1.保证代码去掉对多余列的读写。这点最重要。join 也不要用这些列来 join
2.写一个脚本循环将列值 update 成空值或者默认,一次循环处理几个。
Huelse
2023-09-26 09:56:57 +08:00
postgresql 随便改,不存在上述问题
qiumaoyuan
2023-09-26 10:00:43 +08:00
显得高级
pannanxu
2023-09-26 10:04:51 +08:00
@oneisall8955 #62 自定义的 sql 一样可以映射呀,为什么不可以,已经创建实体对象了,还需要什么交流,看代码不就完了吗。再说了,extra 一般存储相对边缘的字段,谁常用的字段放那里啊。
bwt
2023-09-26 10:05:01 +08:00
我们用的是 pt-online
原理是创建一个新表,然后在老表新建一个触发器,将老表的写操作同步到新表,同时做数据迁移,迁移完成后 rename 表名
这个流程不用停服
Masoud2023
2023-09-26 10:08:46 +08:00
单表千万你们不分表的? OLTP 这样玩真的 ok ?
cwliang
2023-09-26 10:24:41 +08:00
@tramm 把这些字段写为空不就行了
ElmerZhang
2023-09-26 10:34:41 +08:00
首先,某业务表分了 1024 张表,每张表几百万数据,改一次表真的很麻烦。
其次,有些不重要的不会作为查询条件的数据,直接一个 json 扔 ext 里是最简单的。
用了 postgres 之后,我一般留一个 jsonb 字段作为 ext 。
wuhao1
2023-09-26 10:37:50 +08:00
count(*) =266493624
tairan2006
2023-09-26 10:47:46 +08:00
ext 放个 json ,还是挺实用的

不过要搜索的字段还是老老实实加,或者加张新表
yuyang1992test
2023-09-26 11:48:56 +08:00
@ljsh093 流程不就是审批个 sql 吗?难道随着业务发展,就不加新表,加新字段了吗?就磕着 ext 字段造?
yuyang1992test
2023-09-26 11:49:39 +08:00
@lanlanye 文档型数据库吗?没怎么用过
yuyang1992test
2023-09-26 11:50:52 +08:00
@luzemin 那你预留的这个字段以后用到了还改字段名字吗?
yuyang1992test
2023-09-26 11:52:17 +08:00
@jonsmith 一般都会技术评审,最后审批的时候老板也不会看,直接通过
yuyang1992test
2023-09-26 11:54:05 +08:00
@tairan2006 确定,需要查询的还是放新字段才能用到索引
yuyang1992test
2023-09-26 11:55:36 +08:00
@ElmerZhang 我这边分表一般是按照 10 ,1000 来分,这样如果分表键是数字,就可以直接根据尾号就知道是哪张表了
ElmerZhang
2023-09-26 12:01:08 +08:00
@yuyang1992test 按 2 的 N 次方来分的好处是,8 台机器抗不住时,可以扩到 16 台,再抗不住,扩到 32 台,依次类推。每台机器的压力始终是平均的。
rahuahua
2023-09-26 12:20:02 +08:00
@yidinghe 10%的比例非常高了,哪怕有一次都能让你刻骨铭心,所以形成了肌肉记忆

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/976972

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX