我正在編寫一個由MySQL數據庫備份的Web應用程序,其中一個表有可能獲得非常大的(千兆字節)大量的表操作寫道。其中一個表列需要存儲可能相當大的字符串序列。在我到目前爲止的測試中,它已經達到了289字節的大小,但是爲了安全起見,我想要設計最大大小爲1 kb的文件。目前,我將該列存儲爲InnoDB表中的MySQL MediumBlob字段。BLOB或不BLOB
同時,我一直在使用Google來建立BLOB與其他存儲形式相對的優點和缺點。那裏有太多的信息,可能太多了。我所收集的是,InnoDB將BLOB的前幾個字節(如果內存正確地處理我的話)存儲在錶行本身中,其餘的則存儲在其他地方。我也得到了這樣一個觀點:如果每行有一個以上的BLOB(我的表沒有),那麼「別處」是每個BLOB的不同位置。除了我有一個印象,訪問BLOB數據比訪問行數據慢得多(這聽起來很合理)。
我的問題就在於 - 根據我的BLOB大小和桌子的大的可能大小,我應該打擾一個blob嗎?另外,如果我使用某種形式的inrow存儲,而不會對該表能夠容納的最大行數產生不利影響?
MySQL很整潔,讓我在開發環境中獲得了幾乎所有的東西。但是......那不是現實世界。
如果你想存儲字符串,你應該使用TEXT而不是blob,這樣你的字符串將被正確編碼/解碼。 –
另外,1000字節的文本列不是你應該擔心的。 – lanzz