• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fengxue
V2EX  ›  程序员

数据库不是给开发用的?

  •  
  •   fengxue · May 21, 2020 · 12422 views
    This topic created in 2362 days ago, the information mentioned may be changed or developed.

    我:大哥 census 库 ll_census_zd_income 结构同步一下,census 发个版 运维:好了 ,加字段尽量加载默认最后面 我:为啥,我插入是方便查看 运维:数据库是给开发查看用的吗 运维:select *? 运维:不会自己查字段 我:1 (内心 OB 懒得没时间和你多 BB ) 各位 v 友怎么看

    Supplement 1  ·  May 21, 2020
    十分尴尬,第一次发帖。没注意换行被吃了,对不起各位 V 友
    Supplement 2  ·  May 21, 2020
    我:大哥 census 库 ll_census_zd_income 结构同步一下,census 发个版
    运维:好了 ,加字段尽量加载默认最后面
    我:为啥,我插入是方便查看
    运维:数据库是给开发查看用的吗
    运维:select *?
    运维:不会自己查字段
    我:1 (内心 OB 懒得没时间和你多 BB ) 各位 v 友怎么看
    Supplement 3  ·  May 22, 2020
    1 表达能力:除了标题是后加的,聊天记录纯天然无修改。我和运维反正都能理解各自的意思,如果某部分 v 友无法理解我只能怀疑你的理解能力了,当然不排除是我们所处环境不同所导致。(注:本想法聊天记录截图,但没找到这个工功能)

    2 相关环境问题: 本地、测试、线上三个库毋庸置疑,开发用的自然只有本地和测试库。以下都是建立在 MySQL(Navicat 客户端)

    3 事情起因经过及结果
    开发本地 navicat 选择插入字段功能,插入一个字段。然后让运维同步到线上库。我们使用的都是 navicat12 客户端工具,运维同步结构也用的是 navicat 工具里的结构同步。平时我也是这么同步到测试库的。此时,运维突然来一句以后新增字段不要插入默认最后添加,我想是个人都会问一句:为什么吧?但看到他的回复也就不想继续追问了。只能内心吐槽一下。当然还是会按照运维说的做(这也就是回复 1 的含义),毕竟楼主是个刚入行的小菜鸟。但疑问仍然在

    4 发帖原因
    吐槽无可厚非,求安慰是小弟弟做的事毕竟 lz 也是二十多岁的人了,主要还是解除心中疑惑,为何不要插入字段,而是默认最后添加。看看各位 v 友的看法
    97 replies  •  2020-05-22 18:01:35 +08:00
    dorothyREN
    dorothyREN
    May 21, 2020
    1
    没毛病啊
    dorothyREN
    dorothyREN
    May 21, 2020❤️1
    2
    楼主 你完蛋了,我估计一会就有一大批人来叼你了。
    dog82
    dog82
    May 21, 2020
    3
    有略微的性能差异,完全可以忽略不计
    dilu
    dilu
    May 21, 2020 via Android❤️1
    4
    很多事情本身并没有对错,就看谁话语权重,仅此而已
    qW7bo2FbzbC0
    qW7bo2FbzbC0
    May 21, 2020❤️5
    5
    加字段尽量加载默认最后面 我:为啥,我插入是方便查看

    没看懂

    运维:select *? 运维:不会自己查字段 我

    看不懂上下文关系
    MrCastle
    MrCastle
    May 21, 2020
    6
    不应该是开发测试一个库,然后生产一个库吗?
    分开管理不好吗?
    我们公司是开发测试-准生产-生产,三个环境的,开发要动生产的数据库只能提升级流程。直接动生产的数据库算什么事,万一来个删库跑路怎么办?
    ctOS1H
    ctOS1H
    May 21, 2020❤️3
    7
    写的啥玩意
    daozhihun
    daozhihun
    May 21, 2020
    8
    什么乱七八糟的,是不是标点和换行不见了
    sun1991
    sun1991
    May 21, 2020❤️36
    9
    这是 LZ 脑内存的 dump
    realpg
    realpg
    May 21, 2020
    10
    有管数据库的运维的体量的公司 /团队 那就按运维说的办
    realpg
    realpg
    May 21, 2020
    11
    至于你的标题,

    我们租的码头仓库不是给放东西用的?为啥非要整齐的堆起来?随便往里一扔不就好了。为啥要整齐的堆好。
    darksword21
    darksword21
    May 21, 2020
    12
    能加个\n 吗
    Mistwave
    Mistwave
    May 21, 2020 via iPhone❤️2
    13
    没错,db 就是给 dev 用的,你们 dba 不专业,你应该喷他,就应该给你所有权限,上去随便 alter truncate,怎么爽怎么来,毕竟 dev 是大爷。手动狗头
    jinzhongyuan
    jinzhongyuan
    May 21, 2020❤️1
    14
    写的啥 季霸玩意啊
    lscexpress
    lscexpress
    May 21, 2020
    15
    你表达太混乱了
    imdong
    imdong
    May 21, 2020
    16
    大概看懂了,动感地带:“我的地盘听我的。”

    #11 说的对,但描述可以换一下:“仓库不是给搬运工用的?”
    monsterxx03
    monsterxx03
    May 21, 2020 via Android❤️1
    17
    看具体情况喽,其实除 mysql 之外的数据库字段大多只能加最后,如果你们用 etl 工具把表同步到其他数据库里做分析用, add column after 这样的语句大概率不支持的,只能 reload 整张表,的确很麻烦……
    DawnMoon
    DawnMoon
    May 21, 2020 via Android❤️1
    18
    楼主,用文字表达清楚自己想说的话,有那么难吗?
    gabezhao
    gabezhao
    May 21, 2020
    19
    我看了,看不懂你说的啥
    karnaugh
    karnaugh
    May 21, 2020
    20
    不是,楼上这些人看不懂吗??在 [我:] 和 [运维:] 之前脑动加个换行符这么难么,就是个聊天记录,来我给你们加上换行符好吧↓

    我:大哥 census 库 ll_census_zd_income 结构同步一下,census 发个版

    运维:好了 ,加字段尽量加载默认最后面

    我:为啥,我插入是方便查看

    运维:数据库是给开发查看用的吗
    运维:select *?
    运维:不会自己查字段

    我:1 (内心 OB 懒得没时间和你多 BB ) 各位 v 友怎么看

    @hjahgdthab750
    @ctOS1H
    @daozhihun
    @jinzhongyuan
    @lscexpress
    @villivateur
    @gabezhao
    qiayue
    qiayue
    May 21, 2020❤️1
    21
    @karnaugh #20 你看你重新发了一遍,还是错别字连篇,还是没讲清楚问题
    karnaugh
    karnaugh
    May 21, 2020
    22
    @qiayue 抱歉,我只排版了题干,忘记复制问题了,问题在标题里
    AngryMagikarp
    AngryMagikarp
    May 21, 2020❤️1
    23
    我好像明白了。

    意思是某张表加了一列。然后那列默认是排在最后的。如果 select * from table 时,那一列就排在最后面了。而运维认为如果要查看应该自己指定字段以及顺序。比如 select col1,col2 from table 。
    lg106
    lg106
    May 21, 2020
    24
    看了半天才看懂- -
    xuanbg
    xuanbg
    May 21, 2020
    25
    虽然运维做的也没错,但我就是喜欢表结构有序,这是强迫症,而且我不打算改。

    如果楼主不能一言而决,那么就只能去运维那里软磨硬泡也好,撒娇打滚也罢,总之总要付出点代价让运维听你的就完了。
    qW7bo2FbzbC0
    qW7bo2FbzbC0
    May 21, 2020❤️1
    26
    @karnaugh #20 你看你重新发了一遍,还是错别字连篇,还是没讲清楚问题
    Vhc001
    Vhc001
    May 21, 2020
    27
    又一个被应试教育毁掉语言表达能力的。。。
    Vegetable
    Vegetable
    May 21, 2020
    28
    @hjahgdthab750
    @qiayue
    你们回复这人又不是楼主
    Vegetable
    Vegetable
    May 21, 2020
    29
    看不懂这段对话的,理解能力有问题。
    我说的
    x66
    x66
    May 21, 2020
    30
    @xuanbg 例如 Oracle 这种数据库添加列的时候是无法指定位置的,那你用起来可太难受了
    fengxue
    fengxue
    OP
    May 21, 2020 via iPhone
    31
    十分尴尬第一次发帖,电脑发的为何换行不见了
    fengxue
    fengxue
    OP
    May 21, 2020 via iPhone
    32
    @dorothyREN 是嘛,看了下还好
    fengxue
    fengxue
    OP
    May 21, 2020 via iPhone
    33
    @MrCastle 是三个库,我本地加字段让运维同步线上,突然来一句以后加后面有点懵,插入到相关字段浏览效果不是好点吗,一点要在 add_time 后面?
    bk201
    bk201
    May 21, 2020
    34
    你就不能问下为啥这么做,有啥好处,长个见识。话说这个操作什么好处,有谁知道么
    leido
    leido
    May 21, 2020 via Android
    35
    运维和 dba 是两种职业,运维不背锅
    fengxue
    fengxue
    OP
    May 21, 2020 via iPhone
    36
    @monsterxx03 靠谱👍🏻
    fengxue
    fengxue
    OP
    May 21, 2020 via iPhone
    37
    @bk201 我第一反应就问了,为啥不能插入。紧接着说了我为何插入字段而不是默认最后添加字段:插入方便浏览。你看他给我回的啥,之后就懒得和他多 bb 了。心血来潮 v 站发个贴问问各位 V 站大佬为何不能插入和运维回的一句:数据库是给开发查看用的吗 ?解疑惑而已
    heyjei
    heyjei
    May 21, 2020
    38
    很多数据库都是只能把字段附加到最后的吧,也就 MySQL 能够通过 before 和 after 来调整顺序
    qiayue
    qiayue
    May 21, 2020
    39
    @Vegetable 遇到热心群众了,没仔细看
    DonaidTrump
    DonaidTrump
    May 21, 2020
    40
    不知道是什么环境的,楼主也没说,不过生产环境的数据库,确实不是给开发用的。开发即使要数据,也应该有一个测试用的数据库,数据可以从生产环境同步。
    tingfang
    tingfang
    May 21, 2020
    41
    应该是楼主想 ALTER TABLE t_a_table ADD COLUMN a_column INT AFTER a_column,运维不允许指定新增字段的位置。
    danhahaha
    danhahaha
    May 21, 2020❤️2
    42
    就按你这段文字水平,让你随便放字段,那数据库不真是没法看了
    tt67wq
    tt67wq
    May 21, 2020
    43
    我真的是 select *的
    vnex
    vnex
    PRO
    May 21, 2020
    44
    是 因为 select * 吗? 因为 * 会导致两次查询索引?
    c6h6benzene
    c6h6benzene
    May 21, 2020 via iPhone
    45
    我记得我们这边生产数据库( SQL server )改表走 release 的时候也是要求新字段放在最后,便于管理。

    DBA 说的也没毛病,SELECT *字段顺序不满意可以自己指定顺序。
    gleymonkey
    gleymonkey
    May 21, 2020
    46
    测试数据库是给开发用的,随便搞,我是运维
    neoblackcap
    neoblackcap
    May 21, 2020
    47
    @heyjei 没错,也就 MySQL 可以,像 Postgres 才不管你。要不然你重新建表。我觉得这个真的是没有必要,特别是 MySQL DDL 还锁表
    weizhen199
    weizhen199
    May 21, 2020
    48
    那你把 sql 写好,让他帮你跑
    barrysn
    barrysn
    May 21, 2020
    49
    运维和 dba 是两种职业,运维不背锅
    而且 DBA 说的没错,数据库还是针对程序用的,你只是因为个人查看方便就要求更新字段顺序,如果每个开发人员都要求来修改字段顺序,DBA 每天就不用干其他的了。
    abcbuzhiming
    abcbuzhiming
    May 21, 2020
    50
    有 dba 和运维的公司,请务必按照 dba 和运维的话做——这样出任何他们领域的问题,都可以把锅丢他们头上
    ackfin01
    ackfin01
    May 21, 2020
    51
    运维没毛病。数据库也不是给开发用的,是服务于应用的。
    forgottencoast
    forgottencoast
    May 21, 2020
    52
    就这表达能力,我看不用讨论了。
    auin
    auin
    May 21, 2020
    53
    憋着一肚子火到 v 站发给贴求同情,结果反而被怼,v 站用户-1
    tolerance
    tolerance
    May 21, 2020
    54
    u1s1 运维没错,改变表结构有一系列潜在的工作,文档调整,文档版本管理,数据同步,数据恢复,历史数据管理,版本回退,等等;毕竟不可能只有一个开发人员。
    index90
    index90
    May 21, 2020
    55
    select * 不是一个好习惯
    lithiumii
    lithiumii
    May 21, 2020
    56
    建议全部上 mongodb,我看你们还怎么 select *
    jabin88
    jabin88
    May 21, 2020
    57
    开发:要不代码你来写?脚本你来做?工资我代你领
    运维:。。。
    guokeke
    guokeke
    May 21, 2020
    58
    不用 select * 不是开发的常识吗?
    hoyixi
    hoyixi
    May 21, 2020
    59
    正常,正规公司,只要是共用环境,包括 dev 、测试、UAT 环境,数据库不管是 DBA 来管还是谁来管,不是你想改就能改。production 环境更不用说。

    当然你自己用自己搭的,随便你改
    akira
    akira
    May 21, 2020
    60
    数据库不是给开发用的.
    JakeLaoyu
    JakeLaoyu
    May 21, 2020
    61
    如果有相关负责团队就按照他们的规范来,毕竟有问题他们是要背锅的。
    Resource
    Resource
    May 21, 2020
    62
    居然被你猜对了,数据库不是给开发用的
    BasIrs
    BasIrs
    May 21, 2020
    63
    @jinzhongyuan 看到你这里给我整笑了哈哈哈哈
    red2dog
    red2dog
    May 21, 2020
    64
    我们执行线上 sql 是需要审批。然后 dba 执行的。 测试环境是申请权限后随便开发随便用的
    fancy2020
    fancy2020
    May 21, 2020 via iPhone
    65
    第一次知道原来字段是有顺序的,学了个知识点
    swulling
    swulling
    May 21, 2020 via iPhone
    66
    我看懂了,但是确实没必要调整字段说顺序
    Erroad
    Erroad
    May 21, 2020
    67
    数据库是人家管的,人家确实有定规范的权力,出了问题也是人家背锅
    Erroad
    Erroad
    May 21, 2020
    68
    不过语气确实冲,暴躁老哥,哈哈
    keenkiller
    keenkiller
    May 21, 2020
    69
    这写的啥玩意儿。。select * 本来就不让用啊
    stephenxiaxy
    stephenxiaxy
    May 21, 2020
    70
    没毛病
    johnchshen
    johnchshen
    May 21, 2020 via Android
    71
    都是门槛太低惹的祸。看隔壁医生就表现专业的多。
    jasonding
    jasonding
    May 21, 2020
    72
    字段顺序不同有什么影响么?不太懂
    loading
    loading
    May 21, 2020 via Android
    73
    贵司 DBA 已经参照数据库三权分立执行,没毛病的,很优秀的一位员工。
    wc951
    wc951
    May 21, 2020 via Android
    74
    随意搞生产库的离告别开发也不远了
    james122333
    james122333
    May 21, 2020
    75
    看语法就知道搂 肯定目的受众是非专业
    mengzhuo
    mengzhuo
    May 21, 2020❤️1
    76
    我是开发

    ----------

    select * 确实不符合规范,增加项或者删减项程序会没法感知。
    说明没有 ORM 或者审查工具
    如果还是直接按第几位取结果,就更容易 GG 了。
    code review 的时候碰到这样的会直接打回的。
    ------------

    数据库是给程序用的,真人工处理的话,还是笔纸适合你。

    ------------
    你该专业的时候不专业被人喷很正常。
    skull
    skull
    May 22, 2020
    77
    原来你是直接打开数据库看,不是用语句看
    encro
    encro
    May 22, 2020
    78
    @Vhc001
    和应试教育有关系?
    encro
    encro
    May 22, 2020
    79
    @neoblackcap
    加字段恰好属于 ONLINE DDL
    encro
    encro
    May 22, 2020
    80
    除了标题,其他我是挺作者的:
    1,字段有顺序,打开数据库重新设计时容易找到;
    2,ORM 自动都是 select * ,这点性能不算啥,当然如果高频查询,内容长时不应该。

    最后标题也是支持的:
    1,生产库不是给开发用的很正常,但是找 BUG,定位线上数据问题还是得开发为主,所以如果说数据库给开发用没毛病;
    2,至于说数据库是给客户用的,这个客户不用数据库,用的是产品和服务。
    keenkiller
    keenkiller
    May 22, 2020
    81
    @encro 你用的啥 ORM 自动是 select *,我就没见过这种 ORM…
    ayavvv
    ayavvv
    May 22, 2020
    82
    写的什么玩意。。。
    heaton_nobu
    heaton_nobu
    May 22, 2020
    83
    方便查看这个理由不足以说服 DBA 去改变字段顺序
    如果你有更充分的理由,请跟 DBA 说明并询问是否可以插入到前面
    如果没有,那就听 DBA 的
    encro
    encro
    May 22, 2020
    84
    @tairan2006

    几乎我用过所有 PHP,PYTHON,GO 框架没有指定 select 的时候都是 *
    a7217107
    a7217107
    May 22, 2020
    85
    @encro ORM 是根据实体类字段查询所有字段,不是 select * 哦
    encro
    encro
    May 22, 2020
    86
    最后,
    要什么 DBA,
    自己写 migrate,自己查慢日志。

    NB 程序员:
    谁不同意我的意见,
    我就写个程序帮他有优化下,
    让领导觉得他这个岗位可有可无。
    encro
    encro
    May 22, 2020
    87
    @a7217107

    对,
    默认我 model 定义了那些,他就查哪些,定义了所有就查询所有。
    而往往 model 定义了所有。
    lscexpress
    lscexpress
    May 22, 2020
    88
    @liuxey 哈哈哈,有错要认 挨打立正。群众又不是不分青红皂白,虽然我也是开发,但我站运维这边。
    zoharSoul
    zoharSoul
    May 22, 2020
    89
    @index90
    @lithiumii
    @vnex
    @tt67wq
    @guokeke
    @tairan2006
    @mengzhuo



    select * 是 dba 说的. 不是楼主说的,请看清楚上下文. 拒绝无脑回复.
    zoharSoul
    zoharSoul
    May 22, 2020
    90
    @index90
    @lithiumii
    @vnex
    @tt67wq
    @guokeke
    @tairan2006
    @mengzhuo
    @lscexpress


    而且楼主的做法是 添加字段的时候指定了位置,我觉得这个是合理的,非要要求加到最后没有任何意义, 数据库字段理应有合适的顺序方便阅读.
    keenkiller
    keenkiller
    May 22, 2020
    91
    @zoharSoul 主要是楼主自己词不达意啊…

    说白了就是他`alter table add column`的时候用了`after`指定位置,但是 dba 觉得不好,当然实际上这个压根没啥影响。

    一句话就能说清的问题,扯了半天。
    zoharSoul
    zoharSoul
    May 22, 2020
    92
    @tairan2006 是的,主要还是楼主表达的乱七八糟...
    我也是看了楼下有人翻译的才明白.
    namelosw
    namelosw
    May 22, 2020
    93
    DB 是给 dev 看的,但是 dev 确实不应该关心顺序啊。用个 DataGrip 之类的完全无所谓。
    fengxue
    fengxue
    OP
    May 22, 2020
    94
    @gleymonkey 我是测试 mysql 库插入字段,让运维同步结构到线上库才来的这么一段(注:运维用的是 navicat 结构同步)
    adoontheway
    adoontheway
    May 22, 2020
    95
    开发库可以有权限,有字段修改尽量给脚本给运维,而不是口头告知
    vhwwls
    vhwwls
    May 22, 2020
    96
    @sun1991 笑死
    keenkiller
    keenkiller
    May 22, 2020
    97
    楼主你聊天记录你们当事人肯定是知道上下文的,其他人看聊天记录能明白啥。还怀疑别人理解能力,概括一下不行么?

    读过话剧剧本么,你这个场景完全可能是:

    我 [把脚本发给了运维] :…发个版
    运维 [看了看脚本] :select *?

    因为一般情况下上线改数据库是给 DBA 脚本的,谁知道你们这么落后还要手动改,笑死。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1442 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 138ms · UTC 04:49 · PVG 12:49 · LAX 20:49 · JFK 23:49
    ♥ Do have faith in what you're doing.