我是一名数据库设计师,有一个存在主义疑问。
如果您有一个必须与表2或(排他或,一个或另一个)表3有关系的表1,
- 您会选择哪种方法以及为什么可以获得更高的读取性能?
已知可空索引字段(选项A表1)是一个糟糕的决定(请参见O'Reilly High Performance MySQL第3章或MySQL手册),但也已知连接需要时间来执行(选项B)...
学术选择将是B,但我想要一个实际世界的解释,看看它是否真的更适合高性能。
提前感谢!
我是一名数据库设计师,有一个存在主义疑问。
如果您有一个必须与表2或(排他或,一个或另一个)表3有关系的表1,
已知可空索引字段(选项A表1)是一个糟糕的决定(请参见O'Reilly High Performance MySQL第3章或MySQL手册),但也已知连接需要时间来执行(选项B)...
学术选择将是B,但我想要一个实际世界的解释,看看它是否真的更适合高性能。
提前感谢!
实际上,性能适合的设计取决于数据被访问的“权重”。
当频繁访问数据(table2或table3)的一部分时,使用“表继承”是合适的。 如果所有数据(无论是table2还是table3)都经常被访问,则使用“可空外键”是合适的。
然而,“可空外键”可以基于“表继承”建立视图。