我们何时需要在数据库设计中使用1对1的关系?在我看来,如果两个表格是一对一的关系,他们可以合并成一个表格。这是真的?当我们需要在数据库设计中使用1对1关系时?
6
A
回答
10
垂直分区的大型表,以减少I/O和缓存的要求 - 单独的列,经常查询与罕见。
当
alter table
“太贵”时,向生产系统添加一列。垂直分区受益于表(连接)消除 - 提供优化器 支持它(再次减少I/O和高速缓存)。
Anchor modeling - 类似4,但下降到6NF。
0
是的一般。
如果您想要为列的子集分配不同的权限,可能会有一个例外。
也认为只有在双方都需要时才是如此。
0
原因之一是将频繁访问的数据放在一张表中,而在另一张表中访问的数据极少。它会运行得更快并节省一些内存。
但我必须在我做这件事之前把我的手臂拧得很厉害。
1
有时它对桌子锁非常有用。当您将一列添加到数据库时,整个表将被锁定,直到完全重写。当你的数据库有100k行时,这几乎没有影响。但如果你有100M行或1B行,这是一个完全不同的故事......
这对避免占用太多空间的死行也很有用。如果您使用的是MVCC,并且您的某些列经常被覆盖,偶尔可以将它们放在单独的表格中。可以说,自动吸尘最终会启动,但为了节省硬盘驱动器的工作,最好在单独的表格中抽出几个int字段,而不是整行文本,varchar(n)和谁知道还有什么。
最后一个原因是在ORM中滥用select *
。例如,如果您要存储图片或博客帖子/文章,则可以将blob /文本字段存储在单独的表格中。因为每当它由于某个原因被加载时,ORM将加载整行。当你只需要你的图像或文章的URL时,你想要的最后一件事就是从数据库中提取整个二进制/文本;但你的ORM将做到这一点......
相关问题
- 1. 数据库设计1对1关系
- 2. 1-M关系数据库设计
- 3. 为什么有1:1的关系 - 数据库设计?
- 4. 数据库:1:1的关系
- 5. 1对1关系核心数据iOS
- 6. 在关系数据库中存储1:1用户关系的最佳方式
- 7. EntityFramework:数据库设计m到1的关系
- 8. 我需要在设计数据库
- 9. 需要用2个1 *关系
- 10. 一对一关系(1:1)
- 11. 对于与同一个表具有1对1关系的多个表,最佳数据库设计是什么?
- 12. 建模数据库中的1到1..n关系
- 13. 关系数据库设计
- 14. 我需要帮助设计我的oo数据库来处理多种关系
- 15. 数据库关系我为什么要使用它们?
- 16. 用于1对1不识别关系
- 17. 1对多关系
- 18. 数据库关系 - 1:1但不总是?
- 19. 需要一些关于我的数据库设计的建议
- 20. 需要高级帮助来验证我对关系数据库设计中关于代理键的理解
- 21. 存储库模式和1:1关系
- 22. 为什么我们在做2的补码时需要加1
- 23. 如何在django中将数据插入到1对1关系表中
- 24. 使用EF CodeFirst创建1:1关系
- 25. 关系数据库设计用MySQL,
- 26. 数据库设计 - FK为1:1表格
- 27. 在数据库中表示1:1关系的最佳方式是什么
- 28. Web服务器OpenSocial需求是1对1关系吗?
- 29. 在数据库中超时1小时
- 30. 实体框架1对1关系?