外键约束有人使用到生产吗?

现在很多应用开发规范都推荐不使用外键,我们现在代码里也不允许使用外键。

没使用过,文档写了是实验特性,不建议用在生产环境。一般开发在代码里进行约束。

建议忘掉外键这玩意

好久都没有用过这个了,生产一切以稳定为主。

一般不用外键,让应用来保证

在mysql中我们都建议开发不要使用外键,所以tidb中也不会使用

其它数据库都没怎么用外键约束了,还是业务端处理比较好

不建议在分布式数据库用外键,建议在应用层面进行控制。

:thinking:为什么分布式数据库不用外键?有什么限制么?

以前的业务用的oracle,有外键,数据维护的时候,恶心的一批

代码里用到了,建表的时候没有建外键约束

同问,分布式数据库应该也能用外键约束啊,虽然性能上肯定有影响

但是有的场景确实需要使用外键,当性能不是第一位考虑的时候

实验特性,不建议在生产上使用

这种外键约束最好不用依靠数据库,直接在业务层实现更好

没用过

我们生产上有用到外键,但说实话不推荐使用。

没用过,不建议使用

咋样,抛开性能问题,会有数据丢失和其他风险吗

一个是性能问题,一个是维护问题。比如有些操作人员可能不知道存在的外键关系,执行数据修改操作,可能会导致意外的结果。如果将外键设置为级联删除,当删除主表中的记录时,所有从属表中与此记录相关的行也会被自动删除,如果是不是预期内的操作行为,则可能导致数据丢失。