2009-11-17 27 views
4

我即將爲我的表添加一個新列,其中包含500,000個現有行。爲varchar選擇大的值會有什麼傷害嗎? varchars究竟是如何爲現有行分配的?它佔用大量的磁盤空間嗎?在運行時如何記憶效應?在MySQL中爲varchar選擇一個大值會有什麼危害嗎?

我正在尋找MySQL的具體行爲細節,而不是通用的軟件設計建議。

回答

3

爲varchar字段選擇較大的值沒有任何壞處。只有實際的數據將被存儲,並且MySQL不會爲每條記錄分配完整的指定長度。它存儲數據的實際長度以及字段,因此它不需要存儲任何填充或分配未使用的內存。

1

取決於你在做什麼。對於一些細節請參閱相關的文檔頁面:

http://dev.mysql.com/doc/refman/5.0/en/char.html

磁盤空間的懲罰是不是真的比你有什麼例如有什麼不同TEXT類型,從性能角度來看,它實際上可能會更快。

主要問題是最大行大小。請注意,存儲引擎之間的確切含義不同。請查閱您的存儲引擎的MySQL文檔以獲取最大行大小信息。

我還應該補充說可以減少行的大小,但是這取決於你的工作量,索引和行的大小,不管它對你有意義。

+1

你能解釋一點在性能方面。會有大的空varchar行有任何性能問題? – erotsppa 2009-11-17 18:48:36

相關問題