2013-08-23 75 views
0

我有一個巨大的數組(最多9,000個字符),我想保存在我的MYSQL數據庫中。我將使用json_encode()將它編碼爲JSON。MYSQL列中的9,000個char字符串 - 要使用哪種數據類型?

我想確定保存它的最佳數據類型。從我所瞭解的MYSQL文檔中,行內存限制是65,535字節,varchar本身最多可以達到65,535字節。所以至多我的9000個字符的JSON字符串最多可以佔用27,000個字節,每個字節有3個字符,使我在整個行的65k限制之下。

有了這些信息,我就相信varchar(9,000)應該能夠做到這一點,但我是新手,所以我不確定。

我可以使用varchar(9,000)來保存我的JSON字符串,還是會有更高效的數據類型?

謝謝。 *注意:這個JSON信息是動態的,基於文本,創建文件和讀/寫它們不是一個選項,我真的想在MYSQL的限制內完成這個任務。

+0

您確定要在MySql中使用此類數據嗎?你有沒有考慮過使用MongoDB? – Hrishi

+3

我建議TEXT ... – 2013-08-23 20:01:22

+0

我不熟悉MongoDB,我將不得不考慮它。你爲什麼建議MongoDB通過MYSQL進行這個應用程序?正如Timur所建議的,我將不得不考慮TEXT和BLOB。謝謝。 – Vigs

回答

0

我會親自嘗試存儲在服務器上的JSON文件,而是要回答你的問題TEXT和BLOB將是您最好的選擇,VARCHAR是快,但不是當有許多字符

+0

我的問題是將有(我們的假設)在網站上的10,000個用戶,並且每個用戶將有至少一個與它們相關的9,000個char數組。 – Vigs

+0

我會研究BLOB和TEXT,謝謝。 – Vigs

+1

如果它是存儲在服務器端,並且它已經在JSON中,那麼TEXT就是兩個選擇中較好的一個...... BLOB更適用於二進制數據(因此,二進制大型對象) – user2366842

1

你或許應該也考慮如果將所有這些數據首先存儲在數據庫中是一個好主意。每次你想看一件作品時,你真的想要檢索和解析整個9000 char JSON字符串嗎?然後,如果您想修改一次,則必須重新編碼並重新存儲所有數據。

如果這些JSON字符串需要的比任何時候都少,我會建議將數據分解成實際的表和字段,並且僅檢索/設置給定請求所需的位。

+0

檢索信息並解碼它將會發生數千一分鐘的時間。即:當用戶訪問該網站時,該網站被填入這個信息。基本上在任何給定的頁面上加載多達100個這些記錄將不得不被檢索並解碼然後顯示。但是,這些記錄只能每24小時編碼一次並寫入數據庫。然而,仍然有數以萬計的記錄必須被編碼和保存。我已經考慮過你提出的許多領域和表格,而不是一個巨大的領域。我可能不得不更多地考慮這一點。 – Vigs