2013-06-25 61 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