采用以下创建表语句:

create table fruit
{
  count int,
  name varchar(32),
  size float
}

除了那些特定的数据类型,为什么不用“字符串”、“数字”、“ bool 值”或更好的,根本不必指定任何数据类型。

具有此类特定数据类型的技术原因是什么? (与通用或无数据类型相反)

最佳答案

想象一下,一个表中有 2000 万行,有一个 int 列,其中所有的数字都是 1 到 10。

如果为此使用 tinyint,则需要 1 字节 。如果您使用常规 int,则需要 4 个字节 。这是磁盘空间量的四倍, 60 MB 磁盘空间

理论上,您可以设计一个数据库引擎来“智能配置”一个表,但想象一下我们的理论表,数据库突然决定需要为列中的数据分配更多字节。整个表需要重新分页,并且在引擎重组表时,性能可能会慢到爬行数小时。
有很多边缘情况和方法会出错,因此与自动配置相比,首先要正确设计您的应用程序需要更多的工作。

关于database - 为什么在创建数据库表时需要这种特定的数据类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2104338/

10-11 02:59
查看更多