当前位置:网站首页>Why disable foreign key constraints

Why disable foreign key constraints

2022-04-23 15:39:00 dengk2013

【 Ali JAVA standard 】 : Do not use foreign keys and cascades , All foreign key concepts must be solved in the application layer

Why Alibaba stipulates so ?

1. Every time I do DELETE perhaps UPDATE Must consider foreign key constraints , It can lead to painful development , The test data is extremely inconvenient , That is, when inserting a master record , At this time, the foreign key corresponding to the master record , You must also delete or update , Another example is a tester doing a stress test 1000W data , At the same time, the corresponding foreign key record table should also be stored 1000W, You need to build 2000W data , Increase the workload

2. Performance issues : For records containing primary key tables , Need warehousing 2 A watch

3. Concurrency issues : Foreign key constraints enable row level locks When the main table is written, it will enter blocking , For example, there are foreign keys in order details and order total , When adding order details , However, if the write operation of the total order table is not completed, the details will be blocked , Threads are always overstocked, resulting in mysql collapse .

4. Cascade deletion problem : Multiple cascading deletions can make data uncontrollable ; Triggers are also strictly disabled

5. Data coupling : Coupling of data relations at the database level Data migration and maintenance are difficult

 

 6. If mysql The data reached 100 More than hundred million , Data migration is required at this time , For example, migrate to hbase, because hbase There is no relationship between primary and foreign keys , There is no checking of the relationship between main and foreign keys in program , There is no guarantee of data consistency in the migration process

版权声明
本文为[dengk2013]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231537380128.html