2013-06-25 57 views
0

我正在設計一個數據庫,它將存儲各種大小的JSON字符串。我正在考慮使用不同的表(每個表都有兩列,'id'和'data')來存儲不同的字符串大小(tinytext - bigtext)。在這種情況下,將從包含最小字符串大小的表開始搜索每個表。varchar的最佳口徑大小

我還在考慮使用單個字符串大小的單個表並使用多行存儲大型JSON字符串。

..或者我可以創建一個大的VARCHAR大小的表並節省一些開發時間。

有兩點是我設計身邊:

在某些情況下,MySQL存儲小塊數據的「行」,這有助於提高性能。這是什麼意思,我該如何利用這一點?

在某些情況下,mysql會將VARCHAR處理爲其最大可能的大小。這是什麼時候發生的?我怎樣才能避免它?

+0

看起來這篇文章主要關注磁盤空間,而我的文章更側重於處理時間。 – Hoytman

回答

1

從數據庫的角度來看,varchar沒有特別「好」的長度。但是儘量保持最大行大小小於8kb,包括非聚簇索引。然後你將避免MySQL將數據存儲在行外,這會妨礙性能。

+0

如果我的數據庫設置爲使用UTF-8,那麼大約8000個ASCII字符或大約1200個字符,最糟糕的情況下是senario? – Hoytman

+0

爲了存儲'Varchar'data服務器使用'字符數+ 1字節','Nvarchar'使用'字符數* 2 + 2字節'。檢查Dev.MySQL的專用文章 – Stoleg