首页 > 其他分享 >【IT老齐012】外键约束

【IT老齐012】外键约束

时间:2023-04-25 16:34:40浏览次数:30  
标签:级联 删除 订单 外键 明细表 老齐 012 数据

【IT老齐012】外键约束

优点

  • 保证数据的完整性和一致性
  • 级联操作方便
  • 数据一致性交给数据库,代码量小

缺点

  • 性能问题
    • 额外的数据一致性校验查询
  • 并发问题
    • 外键约束会启用行级锁主表写入时会进入阻塞
  • 级联删除问题
    • 多层级联删除会让数据变得不可控
  • 数据耦合问题
    • 数据库层面数据关系产生耦合,数据迁移维护困难

场景

1682410790494

  • 性能问题
    • 往订单明细表添加一条数据,会强制查询对应订单表中的订单id是否存在。
  • 并发问题
    • 并发环境下,往订单明细表添加一条数据,会强制查询对应订单表中的订单id是否存在,所以订单表开启共享锁(共享锁【S锁】,又称为读锁,可以查看但无法修改和删除的一种数据锁)。
    • 某种情况下对订单id进行更新操作,这时订单表该数据开启排它锁(排他锁【X锁】,又称写锁)。
    • 若订单表写锁不被释放,订单明细表处于阻塞的状态。会造成线程积压,系统崩溃。
  • 级联删除问题
    • 删除一条订单类型数据,导致删除的订单明细无法追溯
  • 数据耦合问题
    • 订单明细表数据增长,数据量10亿后,需要迁移到Hbase。这时数据不在同一个库,没有了主外键约束,代码上无校验,就会产生属于一致性问题。

标签:级联,删除,订单,外键,明细表,老齐,012,数据
From: https://www.cnblogs.com/faetbwac/p/17353031.html

相关文章

  • 【IT老齐010】CAP定理
    【IT老齐010】CAP定理分布式架构的基本理论。指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partitiontolerance)。C:更新操作成功后,所有节点在同一时间的数据完全一致。(复习:事务的一致性:事务前后的数据完整性保持一致)A:用户访问数据时,系统能......
  • 【IT老齐009】IP直连
    【IT老齐009】IP直连问题IP直连存在强耦合问题,因为业务更新可能发生代码修改,编译,部署,走流程等。线上建议用域名代替ip地址。解决方案内部DNS建立一个域名解析服务器,直接访问数据库ip对应的域名,域名解析服务器根据配置解析该域名对应的IP返回。优点IP地址迁移变得灵活,......
  • PowerDesigner 12小技巧-pd修改外键命名规则-pd添加外键
    PowerDesigner12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键1.附加:工具栏不见了调色板(Palette)快捷工具栏不见了PowerDesigner 快捷工具栏palette不见了,怎么重新打开,找回来呢上网搜索了一下”powerdesigner图形工具栏”,找到了找回PowerDesigner工具......
  • Employees、临时表的创建 & 外键约束
    一.Employees1.Employees数据库介绍Employees数据库是一个用于学习和测试的数据库,大约160MB,4百万条记录2.Employees的安装2.1安装[root@MyServertest_db]>mysql-uroot-p<employees.sql2.2验证[root@vm-1employees_db]#timemysql-uroot-p-t<test_employ......
  • 【IT老齐003】数据垂直分表
    【IT老齐003】数据垂直分表水平分表范围法和hash法针对数据量大的存储问题垂直分表将一张大表按列切分多张小表分别存储,通过主外键关联查询数据基本情况基本数据单位为行,管理数据单位为页(默认大小16k),保存页的单位为区(默认大小1m,最大64个页)。根本原因innodb1.0......
  • 【HMS Core】视频编辑服务报错method not allowed 20124、Parameter error. Error: ap
    【关键字】视频编辑服务、报错 【问题背景】问题1:集成视频剪辑服务,在原子能力SDK的素材管理时,提示Parametererror.Error:appIdisinvalid.问题2:视频编辑sdkdemo的所有功能提示methodnotallowed20124,后台已申请动态照片、一键微笑、AI着色、一键动效、一键染发的功能......
  • 【IT老齐001】单体架构升级问题
    【IT老齐001】单体架构升级问题不谈场景的架构设计都是耍流氓架构没有对不对,只有合不合适架构是宏观设计的标准框架是具体实现的规则架构是取舍的艺术场景举例系统面临大量文件读写影响服务器磁盘IO导致数据库查询高延迟初级解决方案Redis通过在内存中的高吞吐完......
  • 【IT老齐002】MySQL集群模式与应用场景
    【IT老齐002】MySQL集群模式与应用场景单库模式优点简单粗暴适合数据量干万以下小型应用企业网站,创业公司首选缺点不具备可用性与并发性读写分离集群模式读写分离中间件insert、update、delete负载均衡到从库select路由到主库MySQL主从复制binlog......
  • 洪君:mybatis plus012:增删改查 洪君
    plus的pom依赖:替代原mybatis<!--mybatisplus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>2.1.9</version></d......
  • CS0120 对象引用对于非静态的字段、方法或属性
    非静态类的方法是不能直接调用的,需要实例化,但当有时需在各个地方去调用该方法时,逐个去实例化会显得麻烦,可以采用一个静态类来封装后使用。只有静态类才能调用......