首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bit(8) vs tinyint

bit(8) vs tinyint
EN

Stack Overflow用户
提问于 2011-07-10 23:15:16
回答 1查看 283关注 0票数 0

从存储引擎的角度来看,bit(8)tinyint之间有什么区别吗

或者bit(16) vs smallint

或者bit(24) vs mediumint

或者bit(32) vs int

我想知道的是,它们是同义词吗,并且引擎对待一个和另一个一样吗?

EN

回答 1

Stack Overflow用户

发布于 2011-07-10 23:42:58

首先:我对单个引擎在尝试执行查询时如何处理位字段的内部原理一无所知。我很好奇索引或查询这两种列类型是否会更快。

从原始存储的角度来看,这些是storage requirements for numeric types

整数

=1字节浮点

  • SMALLINT=2 bytes

  • MEDIUMINT =3字节

  • INT,INTEGER =4字节

  • BIGINT =8字节

  • FLOAT (p) =4字节if 0 <= p <= 24,8字节if 25 <= p <= 53 FLOAT=4字节

  • 双精度

精度,实数=8字节

  • DECIMAL(M,D),NUMERIC(M,D) = Varies;参见以下讨论

  • BIT(M) =

约为(M+7)/8字节

除非您使用的是NDBCluster存储引擎,它需要每个存储记录4个字节。(除非您有多个位类型,它们将压缩为最小4个字节)

编辑:

根据this page on numeric types,tinyint(1)和bit在版本5.0.3之前对于myISAM是同义词,对于MEMORY、InnoDB、BDB和NDBCLUSTER5.0.5是同义词。这将意味着它们不再是。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6641881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档