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

数据库不是给开发用的?

  •  
  •   fengxue · 8 天前 · 8885 次点击

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

    第 1 条附言  ·  7 天前
    十分尴尬,第一次发帖。没注意换行被吃了,对不起各位 V 友
    第 2 条附言  ·  7 天前
    大发龙虎我 :大哥 census 库 ll_census_zd_income 结构同步一下,census 发个版
    运维:好了 ,加字段尽量加载默认最后面
    大发龙虎我 :为啥,大发龙虎我 插入是方便查看
    运维:数据库是给开发查看用的吗
    运维:select *?
    运维:不会自己查字段
    大发龙虎我 :1 (内心 OB 懒得没时间和大发龙虎你 多 BB ) 各位 v 友怎么看
    第 3 条附言  ·  6 天前
    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   8 天前
    没毛病啊
    dorothyREN
        2
    dorothyREN   8 天前   ❤️ 1
    楼主 大发龙虎你 完蛋了,大发龙虎我 估计一会就有一大批人来叼大发龙虎你 了。
    dog82
        3
    dog82   8 天前
    有略微的性能差异,完全可以忽略不计
    dilu
        4
    dilu   8 天前 via Android   ❤️ 1
    很多事情本身并没有对错,就看谁话语权重,仅此而已
    hjahgdthab750
        5
    hjahgdthab750   8 天前   ❤️ 5
    加字段尽量加载默认最后面 大发龙虎我 :为啥,大发龙虎我 插入是方便查看

    没看懂

    运维:select *? 运维:不会自己查字段 大发龙虎我

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

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

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

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

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

    大发龙虎我 :为啥,大发龙虎我 插入是方便查看

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

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

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

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

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

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

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

    ----------

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

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

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

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

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

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

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



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


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

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

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

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

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

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