美文网首页
Mysql是否使用外键

Mysql是否使用外键

作者: Austin_Brant | 来源:发表于2017-07-12 11:37 被阅读0次

摘要:外键具有保持数据完整性和一致性的机制,对业务处理有着很好的校验作用。但另一方面,也会产生性能问题,那么外键究竟该用还是不该用 ?

外键是否采用看业务应用场景,以及开发成本的,大致列下什么时候适合,什么时候不适合使用:

  1. 互联网行业应用不推荐使用外键: 用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受IO能力限制,且不能轻易地水平扩展;若是把数据一致性的控制放到事务中,也即让应用服务器承担此部分的压力,而应用服务器一般都是可以做到轻松地水平的伸缩;

2.传统行业
1>.软件应用的人数有限,换句话说是可控的;
2>.数据库服务器的数据量也一般不会超大,且活跃数据有限;

综合上述2句话描述,也即数据库服务器的性能不是问题,所以不用过多考虑性能的问题;另外,使用外键可以降低开发成本,借助数据库产品自身的触发器可以实现表与关联表之间的数据一致性和更新;最后一点,使用外键的方式,还可以做到开发人员和数据库设计人员的分工,可以为程序员承担更多的工作量;

为何说外键有性能问题:
1.数据库需要维护外键的内部管理;
2.外键等于把数据的一致性事务实现,全部交给数据库服务器完成;
3.有了外键,当做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,而不得不消耗资源;
4.外键还会因为需要请求对其他表内部加锁而容易出现死锁情况;

相关文章

  • Mysql是否使用外键

    摘要:外键具有保持数据完整性和一致性的机制,对业务处理有着很好的校验作用。但另一方面,也会产生性能问题,那么外键究...

  • 设置外键,外键约束值的区别

    laravel 设置外键,并设置外键约束的方式 为联级删除 更新:在使用Navicat for mysql设计表时...

  • 你用不用数据库的外键?

    是否使用外键确实会有一些争议。我来解释下关于外键的使用: 首先,外键本身是为了实现强一致性,所以如果需要正确性>性...

  • 4.4 django 模型外键和表关系

    外键和表关系 外键: 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是Inn...

  • django中ORM外键和表的关系-上

    外键和表关系 外键: 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是Inn...

  • 最浅显易懂的Django系列教程(18)-外键和表关系

    外键和表关系 外键: 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是Inn...

  • 09_MySQL多表 & JDBC

    MySQL多表 外键 主表主键和从表外键 ==(从表的外键引用主表的主键)== 从表的外键类型必须和主表的主键类型...

  • Mysql外键

    只有InnoDB存储引擎才支持外键 有两张表: 创建外键 方式1: 如上面创建表的语句: 方式2: 删除外键

  • mysql外键

    为已经添加好的数据表添加外键: 语法:alter table 表名 add constraint FK_ID fo...

  • MySQL - 外键

    一、定义 外键约束(FOREIGN KEY Constraint) ,用来维护从表(Child Table)和主表...

网友评论

      本文标题:Mysql是否使用外键

      本文链接:https://www.haomeiwen.com/subject/mhqbhxtx.html