【问题标题】:WIDE tables mysql宽表mysql
【发布时间】:2011-12-19 04:59:31
【问题描述】:

我有一个 30000 x 2000 的矩阵,我需要将其放入表格中。但是我不能在一个表中包含 2000 个属性,因为它会超过存储限制。将这些属性拆分到不同的表中被认为是好的做法。如果不是还有什么其他方法可以处理我的情况?

谢谢,

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您没有理由不考虑将其拆分为多个表。这种策略称为分区。 http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html

    【讨论】:

    • 我不认为分区意味着重构你的数据库以使用不同的表,我认为这意味着单个表在 mysql 数据存储中使用不同的文件以在某些情况下提高性能。分区不是这个问题的解决方案,重构才是。我希望您不介意我更正定义,但据我了解,这是一个很大的区别。话虽如此,如果您的意思是跨多个相关表拆分数据,那么这是一个很好的解决方案。对于经常变化的结构,Moose 先生发布的 EAV 解决方案会很好。
    【解决方案2】:

    您可以调查an EAV model。它经常得到差评,但我发现在某些情况下它是一种非常有效的方法。有一篇关于将 EAV 与纯 6NF 相关联的很棒的帖子,以及它是如何成为一个很棒的模型的,但是我似乎无法找到它。

    话虽如此,当尝试针对单个实体存储各种属性时,它最有用。这可能不是您的主要目标,因此可能其他人有更好的想法,但我认为值得一看。

    编辑:

    Here is the link I was referring to earlier 值得调查这里提出的一些观点,以确定它是否真的适合您的情况。

    【讨论】:

    • EAV 是一个很好的解决方案,如果从数据库级别读取有点困难,我想您可以基于 EAV 结构创建视图,以使数据在开发过程中更易于读取。
    猜你喜欢
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2020-10-01
    • 2023-03-13
    • 2011-08-18
    相关资源
    最近更新 更多