为什么不推荐使用外键

定义外键之后,数据库的每次操作都需要去检查外键约束。对于插入来说,影响了插入速度;对于更新来说,级联更新是强阻塞,存在数据库更新风暴(Database Update Storm)的风险。

所谓 Database Update Storm,指的是在高并发环境下,多个客户端同时对数据库进行大量的更新操作,存在锁竞争问题甚至死锁,从而导致数据库性能急剧下降或完全崩溃。

另外,当数据量非常大的时候,常见手段是分库分表,但外键通常难以跨越不同数据库来建立联系,数据的一致性更难维护。

因此,外键与级联并不适合分布式、高并发集群,但单机低并发业务可以考虑使用外键保证一致性和完整性。

相关推荐

  1. 为什么推荐使用

    2024-03-11 12:50:03       50 阅读
  2. MySQL|为什么推荐

    2024-03-11 12:50:03       38 阅读
  3. 为什么程序开发中推荐使用全局变量?

    2024-03-11 12:50:03       29 阅读
  4. MySQL中为什么推荐使用 text 类型?

    2024-03-11 12:50:03       21 阅读
  5. 为什么vue3项目中推荐使用const,而是let语法

    2024-03-11 12:50:03       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 12:50:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 12:50:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 12:50:03       87 阅读
  4. Python语言-面向对象

    2024-03-11 12:50:03       96 阅读

热门阅读

  1. vite项目修改依赖不更新,清除依赖缓存

    2024-03-11 12:50:03       37 阅读
  2. linux 入门(七)-ffmpeg使用

    2024-03-11 12:50:03       38 阅读
  3. 单调栈(经典例题)找最近的小数

    2024-03-11 12:50:03       47 阅读
  4. 学AI,3种人,3种学法

    2024-03-11 12:50:03       46 阅读
  5. 突破编程_C++_设计模式(观察者模式)

    2024-03-11 12:50:03       36 阅读
  6. 高频设计模式

    2024-03-11 12:50:03       40 阅读
  7. 基于RBF神经网络的多输入单输出回归分析

    2024-03-11 12:50:03       43 阅读
  8. 前端工程部署步骤小记

    2024-03-11 12:50:03       42 阅读
  9. 如何下载网页中嵌套的PDF

    2024-03-11 12:50:03       45 阅读
  10. Unity3D 常用得内置函数(Cg与GLSL)详解

    2024-03-11 12:50:03       44 阅读
  11. WebGL之创建 3D 对象

    2024-03-11 12:50:03       35 阅读