我是说这里的sql可以是任何类似sql的数据库,比如sql server、mysql、sqlite,甚至ms-access。我想知道表的大小取决于什么,它取决于表中具有固定设计结构的实际行,还是取决于表中单元格的内容。例如:
我有一张桌子,它的固定结构如下:

create table SampleTable (
   ID int primary key,
   Message varchar(500)
)

这是一张有一行的桌子:
ID    |     Message
1           I love .NET     --11 characters for Message

还有一个表有一行:
ID    |     Message
1           I also love Java     --16 characters for Message

如果大小取决于行数,则上面的两个表的大小相同,如果还取决于单元格的内容,则第二个表的大小更大。我想知道哪个更大?我关心这一点,因为在某些情况下,我真的想最大化一个字段的最大字符数(SQL Server中的8000),以使用户几乎不需要输入任何他/他想要的东西,但是我担心我的数据库文件太大(不必要的,昂贵的)。
非常感谢您的帮助!

最佳答案

varchar(或nvarchar)字段只使用所需的空间。
因为这样小的数据量占用更少的空间。固定长度等价物(char,nchar)使用全长。
varchar字段的存储大小是输入数据的实际长度+2字节
http://msdn.microsoft.com/en-us/library/ms176089.aspx

09-13 05:19