• 用建立索引的方式来替代外键关系


    为什么不用外键而用建立索引的方式来代替外键的关系?

    外键有性能问题:

    1.数据库需要维护外键的内部管理;

    2.外键等于把数据的一致性事务实现,全部交给数据库服务器完成;

    3.有了外键,当做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,而不得不消耗资源;

    4.外键还会因为需要请求对其他表内部加锁而容易出现死锁情况;

    建表语句

           Table: a
    Create Table: CREATE TABLE `a` (
      `a_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `name` char(16) DEFAULT NULL,
      `b_id` int(10) unsigned DEFAULT NULL,
      PRIMARY KEY (`a_id`),
      KEY `a_to_b` (`b_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4
    
           Table: b
    Create Table: CREATE TABLE `b` (
      `b_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `age` smallint(6) DEFAULT NULL,
      PRIMARY KEY (`b_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4

    联表查询结果

  • 相关阅读:
    alpha冲刺3
    alpha冲刺2
    alpha冲刺1
    软工第七次作业
    软工第八次作业
    软工第六次作业
    软工第五次作业
    软工第四次作业
    Alpha冲刺一 (2/10)
    Alpha冲刺一(1/10)
  • 原文地址:https://www.cnblogs.com/chen55555/p/11285859.html
Copyright © 2020-2023  润新知