【发布时间】:2024-04-20 08:20:01
【问题描述】:
我有一张不太大的桌子,大约 2M~ 行。 因为一些业务规则,我不得不在这个表上添加一个新的引用。 现在应用程序正在写入值但不使用该列。 现在我需要将所有空行更新为正确的值,创建一个 FK,然后开始使用该列。
但是这个表有很多读取,当我尝试更改表以添加 FK 时,表被锁定并且读取查询被阻塞。
有什么方法可以加快这个速度? 将所有字段保留为 NULL 值有助于加快速度(因为我认为无需检查值是否有效)? 之前创建索引有助于加快速度?
在 postgres 中我可以创建一个无效的 FK 然后对其进行验证(这只会导致行锁,而不是表锁),在 MySQL 中是否有类似的东西?
【问题讨论】: