具有多个字段的表的性能影响

问题描述:

我有一个表,当前在40个字段。现在它的能力显着扩大,它看起来像更像100个领域的东西。具有多个字段的表的性能影响

有更多字段的表的数据库和Rails性能影响是什么?我对关系的理解是,他们不会在绝对必要的时候加载数据,但是会有更多的信息放慢速度,比如这些记录的过滤索引(只显示主要的8-10个字段)?

我特别提到的有关添加的字段与我的任何报告或大多数查询都不相关 - 它们只是存储后端使用的数据。

标准化在这里不成问题(例如,没有字段,如field1field2,...)。我知道以质的方式回答这些问题很难回答,但是在这个表格中建立这60个字段可能会更好吗?还是应该为他们创建一个单独的1-1表格?

拥有单个表格并不是什么大不了的事情,并且在查询时让事情变得更加简单。所以如果它是相关的,不需要拆分。

但是,您应该只查询您在视图中需要的内容,以便使用ActiveRecordselectdoc here

是的,拥有大量字段会降低对表的访问速度,但是,一般而言,这并不足以满足平均数据大小的要求。大多数SQL数据库按行排列表,因此在磁盘上,首先存储第1行的所有40个字段,然后存储第2行的所有40个字段等等。这意味着,如果您只想检索前两个字段,则仍然会读取所有其他38个字段,然后跳转到匹配的下一行。如果只有少数匹配的行,这不是一个大问题,但可能是,如果您有许多匹配也是连续的。这就是说,除非有很好的理由这样做(你可能会这样做,但你给出的答案很少)。一般来说,拥有很多领域表明使用了一些替代设计。明确地说,如果我上面写的东西开始成为一个问题,你应该根据访问模式排序字段(所以如果通常字段1-10和20,24,25,30一起访问,将这些组放入不同的表中)。