› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
wjfz
V2EX  ›  MySQL

要不要用触发器?

  •  1
     
  •   wjfz · Nov 2, 2015 · 5864 views
    This topic created in 3980 days ago, the information mentioned may be changed or developed.
    优点:代码逻辑会简单一点;
    缺点:怕以后接手的哥们儿不好处理。

    所以你是怎么选择的?
    19 replies  •  2015-11-03 12:02:45 +08:00
    neoblackcap
        1
    neoblackcap  
       Nov 2, 2015   ❤️ 1
    有 DBA 的可以上,没有的话,你还能指望每个 RD 都能填你数据库的坑?
    yangtukun1412
        2
    yangtukun1412  
       Nov 2, 2015
    很多云平台是不支持 trigger 的
    Felldeadbird
        3
    Felldeadbird  
       Nov 2, 2015   ❤️ 1
    支持 1 楼。 触发器这东西嘛,用得好的话,省事省力。但是用不好的话,坑死人。特别是 大多数开发都兼顾 DB 设计。 大多数都不会用触发器的。毕竟 一不小心,掉坑了
    southwolf
        4
    southwolf  
       Nov 2, 2015   ❤️ 1
    好多 MySQL 的项目连外键都不用 更不用说视图、触发器、存储过程啥的了……
    linnchord
        5
    linnchord  
       Nov 2, 2015 via iPhone   ❤️ 1
    原则上不用,除非个别极端情况。例如希望在不修改代码的情况下实现某些逻辑。
    pelloz
        6
    pelloz  
       Nov 2, 2015   ❤️ 1
    除非你们有专门的 DBA 去维护,要不然不要用那些东西。逻辑请直接写到代码里面,数据库就只管存数据。
    dong3580
        7
    dong3580  
       Nov 2, 2015   ❤️ 1
    千万不要,千万不要,千万不要。
    上次全部更换数据库,存储过程和触发,改的想死,
    ruchee
        8
    ruchee  
       Nov 2, 2015   ❤️ 2
    观点同 @neoblackcap @Felldeadbird @southwolf
    没专业 DBA 坐镇,别用这些高级玩意,数据库,存取数据就完成使命了,逻辑全部写在代码里,清晰易懂,还可以纳入版本管理
    echo1937
        9
    echo1937  
       Nov 2, 2015   ❤️ 2
    触发器和外键之类的高级性能,对 DB 的性能,扩展和维护都会带来额外负担,你获得的那点好处,完全值不回以后要填的坑。

    毕竟 DB Server 的扩展难度可比 App Server 大得多,所以即使团队有专业 DBA ,一般也不会推荐你用触发器。
    bearzk
        10
    bearzk  
       Nov 2, 2015   ❤️ 1
    我们有专业 DBA 用了 trigger 效果也不错 不过他不在的时候我们都不确定咋搞这个 无奈 所以建议还是不要用了
    UtopiaCHN
        11
    UtopiaCHN  
       Nov 2, 2015 via iPhone
    测试
    wizardforcel
        12
    wizardforcel  
       Nov 2, 2015   ❤️ 1
    如果你以后打算一直用 mysql 就用。
    virusdefender
        13
    virusdefender  
       Nov 2, 2015   ❤️ 1
    能把逻辑写代码的我都写代码,尽量与数据库无关,以后拓展也方便些
    Zzzzzzzzz
        14
    Zzzzzzzzz  
       Nov 2, 2015
    @southwolf 虽说 DB 里减少使用这些是为了维护和迁移, 但是 MySQL 里用得不多主要是这些功能早年都没有。。。。
    xAx
        15
    xAx  
       Nov 2, 2015   ❤️ 2
    项目一直用的 oracle,除了索引、视图、序列,其他全部 [禁止] 使用。

    一是使项目与数据库无关。二是代码中表现出来的业务逻辑是完整的。三是代码就能完成,没事去弄数据库做什么。
    更重要的是:反正我是不知道触发器、存储过程什么的怎么打断点去调试。
    kiwi95
        16
    kiwi95  
       Nov 2, 2015
    @southwolf 视图用的还是挺多的,其他的却是不太常用
    akira
        17
    akira  
       Nov 2, 2015   ❤️ 1
    见仁见智了。
    反正个人是完全不建议使用触发器的,不管是为了避免未来的数据库迁移 /维护,还是更换开发 /维护人员,没有触发器都是会更容易。
    chenzhuo
        18
    chenzhuo  
       Nov 3, 2015
    用个触发器还要有 dba 才行?
    realpg
        19
    realpg  
       Nov 3, 2015   ❤️ 1
    发到 MySQL 板块,告诉你千万别用的十有八九是搞 PHP 的…………

    真正大型项目,存储过程常态化,触发器满地。
    做好文档。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   858 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 20:01 · PVG 04:01 · LAX 13:01 · JFK 16:01
    ♥ Do have faith in what you're doing.