我的意思是这里的SQL可以是任何类似SQL的数据库,如SQL Server,My SQL,SQLite,甚至是MS Access。我想知道表的大小取决于什么,它取决于表中具有固定设计结构的实际行,或者它还取决于表中单元格的内容。例如:
我有一张桌子,其结构固定如下:
create table SampleTable (
ID int primary key,
Message varchar(500)
)
以下是1行的表格:
ID | Message
1 I love .NET --11 characters for Message
这里也是一个包含1行的表:
ID | Message
1 I also love Java --16 characters for Message
如果大小取决于行数,则上面的2个表将具有相同的大小,如果它还取决于单元格的内容,则第二个表将具有更大的大小。我想知道哪个更大?我关心这个,因为在某些情况下,我真的想要最大化字段的最大字符数(SQL服务器中的8000),以使用户几乎不需要输入他想要的任何东西,但我害怕制作我的数据库文件太大(不必要,成本高昂)。
非常感谢您的帮助!
答案 0 :(得分:3)
varchar(或nvarchar)字段仅使用所需的空间。
因为这样少量的数据占用的空间更少。固定长度等价物(char,nchar)使用全长。
varchar字段的存储大小是输入数据的实际长度+ 2个字节 http://msdn.microsoft.com/en-us/library/ms176089.aspx
答案 1 :(得分:3)
粗略地说,表的大小取决于
开销会给你带来惊喜。
分区和其他结构优化可能会影响 table 的含义。
答案 2 :(得分:2)
SQL - 意味着ISO SQL标准 - 实际上没有指定数据应该如何存储。不同的DBMS都有自己的内部存储机制,它们可以有很大的不同。
索引,压缩和分区只是确定使用多少存储空间的一些因素。您需要参考您正在使用的特定产品的文档,而不是寻找任何一般性答案。
答案 3 :(得分:2)
一般来说。至少对于SQL Server,有许多因素需要考虑:
在线检查有关data types的书籍,以及每个书籍保存所需的存储量。
例如,请参阅MS SQL Server中的calculate the estimated size of a clustered index。