我正在使用PHP/Laravel和MySQL进行一个项目,我有一个有大约20列的表,在大多数情况下,有些列是空的.应用程序的性能对我来说很重要,而数据库的大小不是.我想知道空列对我的应用程序性能的影响。
发布于 2017-01-02 14:05:38
首先,empty/blank数据库列和NULL值列有很大的区别。正如您解释的那样,在大多数情况下,它是一个空列,因此性能可能很低,因为数据库需要越来越多的空间来容纳所有空值,而不是空值。更大的空间意味着更多的硬件成本+难以维护+更少的性能。
因此,最好的方法是将列类型设置为NULL,其中数据库完全忽略字段,如果有大量记录和列,则使用较少的空间,从而提高性能。
注意:正如我提到的,除非您有大量的数据,否则这只会影响,如果记录的数量相对较少,则不会影响。
发布于 2017-01-02 12:38:17
这是一个非常广泛的问题,因此不可能有具体的答案。然而,我想提供一个答案,因为这类问题出现了,它可以得到一个标准的参考答案。
一般来说,当你想到一个设计时,“我希望它表现得很好”不应该是你的第一个问题。您应该首先按照良好的设计原则设计数据库(尤其是作为初学者!)然后在出现性能问题时解决它们。然后,当您在那里获得经验时,您可能会发现一些需要进行特定优化的情况。换句话说,过早的优化是万恶之源。
标准好的db设计原则将为您提供一个数据库,该数据库针对一般情况进行了很好的优化,但可能不适合特定情况。然而,在几乎所有的情况下,你都会通过这个方向获得足够好的性能。
在RDBMS中预见到设计无法适应的特定性能问题是非常困难的,所以最好先开门,必要时才关门。否则,您可能会关闭错误的门,总体上损害您的应用程序的性能。
对于初学者来说,这是关于性能和设计的好的一般建议,而不管数据库是什么。
https://stackoverflow.com/questions/41426500
复制相似问题