gpt4 book ai didi

sql - 关于连接性能与系统非规范化的任何好的文献?

转载 作者:行者123 更新时间:2023-12-04 11:59:33 25 4
gpt4 key购买 nike

作为 this question 的推论我想知道是否有很好的比较研究,我可以引用并传递使用 RDMBS 进行连接优化与系统地非规范化以便始终一次访问单个表的优势。

具体来说,我想了解以下信息:

  • 性能或规范化与非规范化。
  • 标准化与非标准化系统的可扩展性。
  • 非规范化的可维护性问题。
  • 非规范化的模型一致性问题。

  • 一点历史,看看我要去哪里:我们的系统使用内部数据库抽象层,但它很旧,不能处理多个表。因此,必须使用对每个相关表的多个查询来实例化所有复杂对象。现在为了确保系统始终使用单个表,整个表都使用了大量的系统非规范化,有时会压平两到三层深。至于 n-n 关系,他们似乎已经通过精心设计他们的数据模型来解决它,以避免这种关系,并且总是退回到 1-n 或 n-1。

    最终结果是一个错综复杂的系统,客户经常提示性能。在分析此类瓶颈时,他们从不质疑系统所基于的这些基本前提,并始终寻找其他解决方案。

    我错过了什么 ?我认为整个想法是错误的,但不知何故缺乏无可辩驳的证据来证明(或反驳)它,这就是我转向你们集体智慧的地方,向我指出好的、广为接受的文献,可以说服我团队中的其他人这一点方法是错误的(让我相信我对一致的数据模型过于偏执和教条)。

    我的下一步是构建我自己的测试平台并收集结果,因为我讨厌重新发明轮子,我想知道关于这个主题的内容。

    - - 编辑
    注意:系统最初是用平面文件构建的,没有数据库系统……后来才移植到数据库,因为客户坚持使用 Oracle 的系统。他们没有重构,只是简单地为现有系统添加了对关系数据库的支持。后来取消了对平面文件的支持,但我们仍在等待重构以利用数据库。

    最佳答案

    一个想法:你有一个明显的阻抗不匹配,一个只允许访问一个表的数据访问层?就此打住,这与关系数据库的最佳使用不一致。关系数据库旨在非常好地执行复杂查询。除了返回单个表之外别无选择,并且可能在 bausiness 层中进行任何连接,只是没有意义。

    有关规范化的理由以及潜在的一致性成本,您可以引用 Codd 之后的所有 Material ,请参阅维基百科 article .

    我预测对这类东西进行基准测试将是一项永无止境的事件,特殊情况会比比皆是。我声称规范化是“正常的”,人们从干净的数据库设计中获得了足够好的性能。也许一种方法可能是一项调查:“您的数据的标准化程度如何?从 0 到 4 的范围。”

    关于sql - 关于连接性能与系统非规范化的任何好的文献?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218385/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com