我们正在重写一个现有的系统,在主目录表中,一些新的列正在被引入,因为需要这些列在大约15-20%的整体案例中。这意味着80%-85%的时间,这些列将为null。这些新的列数据类型将包括十进制、varchar、smallint。
现在,我们有三个选择:
我认为第二个选择似乎是最合适的,但我需要根据你的经验提出意见。
P.S.:我们的计划基本上也是将这个数据库从单个实例移动到共享数据库。并且sql实例是MySQL。
发布于 2018-03-04 07:15:02
我将和option (2)一起去。让我们将主表称为Table A,子表称为Table B。
由于80%的时间,新列的值为空,所以Table A到Table B的关系可以是1-to-1或1-to-0。这意味着当值为NULL时,不需要将记录插入到Table B中。
这使得Table B相对较小,因此JOIN操作不应该带来太多的性能问题。
JSON列可以是另一种选择,但对于其中每个字段的类型,检查不那么严格。
https://stackoverflow.com/questions/49092748
复制相似问题