2017-01-02 119 views
0

我的工作用PHP/Laravel和MySQL的一個項目,我有一個具有大約20列的表,並且在大多數情況下,一些列的都是空的...應用程序的性能是很重要的我,數據庫的大小不是......我想知道空列在我的應用程序性能中的影響。MySQL數據庫性能

感謝所有和對不起我的壞Engilsh

+0

NULL列的影響非常小。 –

回答

1

首先,有一個empty/blank數據庫列和NULL值列之間的巨大差異。正如你所解釋的那樣,在大多數情況下,它是一個空的列,因爲數據庫需要越來越多的空間來容納所有空值而不是NULL值,所以性能可能會降低。更多的空間意味着更多的硬件成本+難以維護+更低的性能。

因此,最好的方法是將列類型設置爲NULL,其中數據庫完全忽略該字段,如果您有大量記錄和列,則佔用較少的空間,從而提高性能。

注意:正如我所提到的,這隻會影響,除非你有大量的數據,它不會影響記錄數量是否相對較少。

2

這是一個非常廣泛的問題,所以一個明確的答案是不可能的。我想提供一個答案,因爲這種問題出現了,它可以得到一個標準的參考答案。

一般設計的思考時,「我希望它表現良好」不應該是你的第一個問題。您應該首先根據良好的設計原則設計數據庫(特別是作爲初學者!),然後解決性能問題。然後,當您在那裏獲得經驗時,您可能會發現一些需要進行特定優化的情況。換句話說,不成熟的優化是一切罪惡的根源。

標準DB良好的設計原則會給你這是好於一般情況下優化,但也許不是具體案件的數據庫。實際上,在所有情況下,通過走這個方向你都可以獲得足夠好的表現。

預見在設計不能容納RDBMS特定的性能問題是非常困難的,所以你最好還是保持門打開的第一個也是唯一收盤後,當你不得不這樣做。否則,您可能會關閉錯誤的門,並且總體上會損害應用程序的性能。

這是關於性能和設計,無論在有問題的數據庫的初學者良好的一般性建議。