首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fengxue
V2EX  ›  程序员

数据库不是给开发用的?

  •  
  •   fengxue · 12 天前 · 8931 次点击

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

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

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

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

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

    没看懂

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ----------

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

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

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

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

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

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

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



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


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

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

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

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

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

    因为一般情况下上线改数据库是给 DBA 脚本的,谁知道你们这么落后还要手动改,笑死。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3899 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 04:55 · PVG 12:55 · LAX 21:55 · JFK 00:55
    ♥ Do have faith in what you're doing.