2017-01-02 74 views
0

我的工作用PHP/Laravel和MySQL的一个项目,我有一个具有大约20列的表,并且在大多数情况下,一些列的都是空的...应用程序的性能是很重要的我,数据库的大小不是......我想知道空列在我的应用程序性能中的影响。MySQL数据库性能

感谢所有和对不起我的坏Engilsh

+0

NULL列的影响非常小。 –

回答

1

首先,有一个empty/blank数据库列和NULL值列之间的巨大差异。正如你所解释的那样,在大多数情况下,它是一个空的列,因为数据库需要越来越多的空间来容纳所有空值而不是NULL值,所以性能可能会降低。更多的空间意味着更多的硬件成本+难以维护+更低的性能。

因此,最好的方法是将列类型设置为NULL,其中数据库完全忽略该字段,如果您有大量记录和列,则占用较少的空间,从而提高性能。

注意:正如我所提到的,这只会影响,除非你有大量的数据,它不会影响记录数量是否相对较少。

2

这是一个非常广泛的问题,所以一个明确的答案是不可能的。我想提供一个答案,因为这种问题出现了,它可以得到一个标准的参考答案。

一般设计的思考时,“我希望它表现良好”不应该是你的第一个问题。您应该首先根据良好的设计原则设计数据库(特别是作为初学者!),然后解决性能问题。然后,当您在那里获得经验时,您可能会发现一些需要进行特定优化的情况。换句话说,不成熟的优化是一切罪恶的根源。

标准DB良好的设计原则会给你这是好于一般情况下优化,但也许不是具体案件的数据库。实际上,在所有情况下,通过走这个方向你都可以获得足够好的表现。

预见在设计不能容纳RDBMS特定的性能问题是非常困难的,所以你最好还是保持门打开的第一个也是唯一收盘后,当你不得不这样做。否则,您可能会关闭错误的门,并且总体上会损害应用程序的性能。

这是关于性能和设计,无论在有问题的数据库的初学者良好的一般性建议。