当前位置:网站首页>为啥禁用外键约束
为啥禁用外键约束
2022-04-23 15:37:00 【dengk2013】
【阿里JAVA规范】 :不得使用外键与级联,一切外键概念必须在应用层解决
阿里巴巴为什么这么规定?
1.每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,测试数据极为不方便,也就是说插入一条主记录的时候,这个时候主记录对应的外键,也必须删除或者更新,再比如一个测试员在做压力测试入库1000W数据,那么同时对应的外键记录表也要入库1000W,也就需要造2000W数据,增加工作量
2.性能问题:对于包含主键表的记录,需要入库2张表
3.并发问题:外键约束会启用行级锁 主表写入时会进入阻塞,比如订单明细表和订单总额表存在外键,当增加订单明细表的时候,但是订单总额表写操作没有完成就会导致明细表发生阻塞,线程一直积压导致mysql崩溃。
4.级联删除问题:多层级联删除会让数据变得不可控 ;触发器也严格被禁用
5.数据耦合:数据库层面数据关系产生耦合 数据迁移维护困难
6.如果mysql的数据达到100亿以上,此时需要数据迁移,比如迁移到hbase,由于hbase没有主外键的关系,程序中并没有主外键关系的检查,就不能保证迁移过程中保证数据一致性
版权声明
本文为[dengk2013]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u012222011/article/details/124340571
边栏推荐
- 【AI周报】英伟达用AI设计芯片;不完美的Transformer要克服自注意力的理论缺陷
- 码住收藏▏软件测试报告模板范文来了
- Openstack theoretical knowledge
- Leetcode学习计划之动态规划入门day3(198,213,740)
- Introduction to dynamic programming of leetcode learning plan day3 (198213740)
- MySQL installation process (steps for successful installation)
- 移动app测试如何进行?
- Sword finger offer (1) -- for Huawei
- Connect PHP to MSSQL via PDO ODBC
- 字符串排序
猜你喜欢
G007-HWY-CC-ESTOR-03 华为 Dorado V6 存储仿真器搭建
Advantages, disadvantages and selection of activation function
MultiTimer v2 重构版本 | 一款可无限扩展的软件定时器
2022年中国数字科技专题分析
cadence SPB17.4 - Active Class and Subclass
Detailed explanation of kubernetes (IX) -- actual combat of creating pod with resource allocation list
Mysql database explanation (10)
The wechat applet optimizes the native request through the promise of ES6
机器学习——逻辑回归
regular expression
随机推荐
Today's sleep quality record 76 points
ICE -- 源码分析
Recommended search common evaluation indicators
Grep was unable to redirect to the file
Do keyword search, duplicate keyword search, or do not match
Connect PHP to MySQL via PDO ODBC
推荐搜索 常用评价指标
字符串排序
MySQL query library size
移动app软件测试工具有哪些?第三方软件测评小编分享
Educational Codeforces Round 127 A-E题解
Cookie&Session
Detailed explanation of MySQL connection query
What if the package cannot be found
激活函数的优缺点和选择
通过 PDO ODBC 将 PHP 连接到 MySQL
什么是CNAS认证?CNAS认可的软件测评中心有哪些?
c语言---指针进阶
【递归之数的拆分】n分k,限定范围的拆分
PHP function