› 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
darasion
V2EX  ›  MySQL

要不要使用外键?

  •  
  •   darasion · Mar 13, 2013 · 8985 views
    This topic created in 4944 days ago, the information mentioned may be changed or developed.
    1. 要:
    保证数据完整性

    2. 不要:
    容易开发和维护
    16 replies  •  2016-04-15 12:15:20 +08:00
    workaholic
        1
    workaholic  
       Mar 13, 2013
    看应用规模了,数据量太大就要考虑性能了
    pythonee
        2
    pythonee  
       Mar 13, 2013
    我司没有用,完全拿数据库当NoSQL使,奶奶的
    zhuf
        3
    zhuf  
       Mar 13, 2013
    不要
    zenwong
        4
    zenwong  
       Mar 13, 2013   ❤️ 1
    个人认为外键这种东西是理想化情况下的东西,在实际开发中你可能遇到需求上的一些问题,使你无法理想化
    zerox
        5
    zerox  
       Mar 13, 2013
    反正我司是不使用外键的,从头到尾没人提过这事,总的来说是有性能影响的,不用的话也没觉得有什么问题。ls说的好,外键是理想化情况下的东西
    zer4tul
        6
    zer4tul  
       Mar 16, 2013
    数据规模小,要求开发效率的话,可以用。
    数据规模大的话就不要用了,对执行效率的影响挺大。另外就是dump出来source的时候麻烦。
    hilyjiang
        7
    hilyjiang  
       Mar 16, 2013   ❤️ 1
    1. 要
    开发及测试环境使用,有助于保证生产环境中的数据完整性

    2. 不要
    生产环境中,考虑性能问题,可以删除外键约束
    zer4tul
        8
    zer4tul  
       Mar 16, 2013
    @hilyjiang 开发和测试环境使用外键,但是生产环境不使用,怎样保证生产环境中的数据完整性?没看明白,求解释。
    atom
        9
    atom  
       Mar 16, 2013
    我司也是从来不用外键,我司更看重事务。
    binjoo
        10
    binjoo  
       Mar 17, 2013
    总感觉外键很麻烦。。
    saharabear
        11
    saharabear  
       Mar 17, 2013
    咱们这里讨论问题不加前提条件的吗?

    银行,金融业务能不加外键吗?

    个别时候银行金融业务是开发过程用外键,运行环境部署删除外键。不过大部分都会强制主外键约束。

    互联网产品,就几个文章的东西,就算再复杂的文章,基本上为了性能,用冗余,不用外键。但有一些强约束的地方,就必须用外键。
    saharabear
        12
    saharabear  
       Mar 17, 2013
    补充一下,银行和金融也不只是用DB2的,也有Oracle和MySQL。
    wd
        13
    wd  
       Mar 17, 2013
    外键是用来限制数据完整性的(包括插入和删除的时候),如果你对这个要求没那么高,那么可以不要,还能节省一些性能。
    daweiba
        14
    daweiba  
       Mar 17, 2013
    i36lib
        15
    i36lib  
       Apr 15, 2016
    从 Oracle 企业实施套件( Oracle EBS )学来的经验,不用,只是在代码罗就里面保证这种约束。
    i36lib
        16
    i36lib  
       Apr 15, 2016
    但是要求文档或者注释要及时跟上,不然难以维护。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1420 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 16:36 · PVG 00:36 · LAX 09:36 · JFK 12:36
    ♥ Do have faith in what you're doing.