【问题标题】:MySQL database performanceMySQL 数据库性能
【发布时间】:2017-01-02 12:03:47
【问题描述】:

我正在开发一个使用 PHP/Laravel 和 MySQL 的项目,我有一个大约有 20 列的表,在大多数情况下,有些列是空的……应用程序的性能对我来说很重要,而数据库的大小不是...我想知道空列对我的应用程序性能的影响。

【问题讨论】:

  • NULL 列的影响很小。

标签: php mysql database performance laravel


【解决方案1】:

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

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

注意:正如我所提到的,这只会影响除非您有大量数据负载,如果记录数相对较少则不会影响。

【讨论】:

    【解决方案2】:

    这是一个非常广泛的问题,因此可能无法给出具体答案。但是我想提供一个答案,因为这种问题出现了,它可以得到一个标准的参考答案。

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

    标准的良好数据库设计原则将为您提供一个数据库,该数据库针对一般情况进行了很好的优化,但可能不适用于特定情况。但是,几乎在所有情况下,只要朝着这个方向发展,您都会获得足够好的性能。

    预测 RDBMS 中设计无法解决的特定性能问题非常困难,因此您最好先保持门打开,然后在必要时才关闭。否则,您可能会关闭错误的门,并全面损害您的应用程序的性能。

    这对于初学者来说是一个很好的关于性能和设计的一般建议,无论所涉及的数据库如何。

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 2016-10-24
      • 2017-02-13
      • 2011-10-04
      相关资源
      最近更新 更多