列数不会影响数据库性能但行号是否正确?

时间:2010-07-08 13:39:00

标签: mysql database

与标题一样。

我正在考虑使用JOIN单独的表或使用单表,基本上我担心性能。

谢谢。

6 个答案:

答案 0 :(得分:1)

表中的列总数可能会严重影响性能。宽表可能涉及为每行加载大量数据,除非您小心地只返回每个查询中需要的列。

此外,表格中的大量列可能表示设计缺陷和缺乏规范化。

如果正确设置索引,行数就不会出现问题。

答案 1 :(得分:0)

查询返回的列数可能会影响性能 - 建议仅返回所需的列。

最好将重复信息分解为单独的表格以用于其他原因(称为规范化) - 例如,如果您有工作的候选人,您不希望每个申请人在工作中有很多列 - 你最好有一张申请人表,一份工作表和一份将两者联系起来的申请表。

拥有一个宽表也可以影响性能本身,因为每个记录都更大,这意味着更多的光盘试图扫描表格(这里有一些警告,它在很大程度上取决于使用的数据类型)

答案 2 :(得分:0)

不,列数也会影响性能。更多列意味着需要处理更多数据。更多列会影响驱动器上的布局,这可能会影响性能。

所有这些都取决于您的数据,查询以及您如何调整数据库和表格(例如根据您的查询提供适当的索引。

在您担心性能之前,开始使用您的实际数据和查询进行性能分析和测试,如果您只是猜测您猜错了。

答案 3 :(得分:0)

这称为vertical partitioning。如果您可以将不常用的列分隔到它们自己的表中,它可以减少I / O,但如果大多数查询最终加入表,可能会增加开销。特别是如果两个表都在同一张光盘上。

答案 4 :(得分:0)

如果您执行select *...或尝试更新/插入行并更改每列,或者索引了很多列,那么非常宽的表(数十到100列)肯定会导致性能问题。

答案 5 :(得分:-1)

列号和行号都会影响性能。

如果您担心性能,可能需要仅使用用于连接的列创建视图。另一种选择是创建索引,但如果表没有经常更新,则只使用索引。

除非您有超过1000条记录或超过15列,否则您不必担心性能。