当前位置:网站首页>为啥禁用外键约束
为啥禁用外键约束
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
边栏推荐
- Hj31 word inversion
- My raspberry PI zero 2W toss notes to record some problems and solutions
- JSON date time date format
- 提取不重复的整数
- 通过 PDO ODBC 将 PHP 连接到 MySQL
- Krpano panorama vtour folder and tour
- 深度学习调参的技巧
- 服务器中毒了怎么办?服务器怎么防止病毒入侵?
- Common interview questions of operating system:
- [backtrader source code analysis 18] Yahoo Py code comments and analysis (boring, interested in the code, you can refer to)
猜你喜欢
随机推荐
推荐搜索 常用评价指标
字节面试 transformer相关问题 整理复盘
How to test mobile app?
【backtrader源码解析18】yahoo.py 代码注释及解析(枯燥,对代码感兴趣,可以参考)
Collation of errors encountered in the use of redis shake
编译,连接 -- 笔记
The El tree implementation only displays a certain level of check boxes and selects radio
网站压测工具Apache-ab,webbench,Apache-Jemeter
What if the package cannot be found
MySQL query library size
fatal error: torch/extension.h: No such file or directory
携号转网最大赢家是中国电信,为何人们嫌弃中国移动和中国联通?
G007-HWY-CC-ESTOR-03 华为 Dorado V6 存储仿真器搭建
深度学习调参的技巧
电脑怎么重装系统后显示器没有信号了
JSON date time date format
Go语言条件,循环,函数
kubernetes之常用Pod控制器的使用
Common types of automated testing framework ▏ automated testing is handed over to software evaluation institutions
What role does the software performance test report play? How much is the third-party test report charged?