采用如下的建表语句:
create table fruit
{
count int,
name varchar(32),
size float
}
为什么不用“string”、“number”、“boolean”或更好的数据类型,而不是那些特定的数据类型,根本不必指定任何数据类型。
拥有这些特定数据类型的技术原因是什么? (与通用或无数据类型相反)
最佳答案
想象一个表中有 2000 万行,有一个 int 列,其中所有数字都是 1 到 10。
如果为此使用 tinyint,它将占用 1 个字节。如果您使用常规 int,它将占用 4 个字节。这是磁盘空间量的四倍,60 MB 以上的磁盘空间。
理论上,您可以设计一个数据库引擎来“智能配置”一个表,但想象一下我们的理论表,突然间数据库决定它需要为列中的数据分配更多字节。整个表将需要重新分页,并且在引擎重组表时,性能可能会降低数小时。 有太多的极端情况和出错的方法,与一开始就正确设计您的应用程序相比,掌握自动配置的工作量更大。
关于database - 为什么在创建数据库表时需要这样特定的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104338/