我很难确定何时在db设计中使用1对1关系,或者是否有必要.
如果您只能 Select 查询中需要的列,那么是否有必要将表拆分成一对一的关系.我猜更新大表比更新小表对性能的影响更大,我确信这取决于表在某些操作(读/写)中的使用率
那么,在设计数据库模式时,如何考虑一对一关系呢?你用什么标准来确定你是否需要一个,不使用有什么好处?
我很难确定何时在db设计中使用1对1关系,或者是否有必要.
如果您只能 Select 查询中需要的列,那么是否有必要将表拆分成一对一的关系.我猜更新大表比更新小表对性能的影响更大,我确信这取决于表在某些操作(读/写)中的使用率
那么,在设计数据库模式时,如何考虑一对一关系呢?你用什么标准来确定你是否需要一个,不使用有什么好处?
从逻辑的Angular 来看,1:1的关系应该总是合并到一个表中.
另一方面,对于这样的"vertical partitioning"或"行拆分",可能有physical个注意事项,尤其是如果您知道访问某些列的频率更高,或者访问方式与其他列不同,例如:
数据库非常擅长处理数据,所以我不会仅仅为了更新性能而拆分表,unless您已经对代表性的数据量执行了实际基准测试,并得出结论,性能差异确实存在并且足够显著(例如,抵消了加入的需求增加).
另一方面,如果您谈论的是"1:0或1"(而不是真正的1:1),这是一个完全不同的问题,应该得到不同的答案……