加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 何时使用TINYINT over INT?

发布时间:2021-01-11 14:32:20 所属栏目:编程 来源:网络整理
导读:一般来说,我总是使用Ints.我知道理论上这不是最好的做法,因为你应该使用保证存储数据的最小数据类型. 例如,当你知道你将存储的唯一数据是1,0或null时(最好将其扩展到2或3之后的几率),最好使用tinyint. 但是,我知道这样做的唯一原因是出于存储目的 – 在一行上

一般来说,我总是使用Ints.我知道理论上这不是最好的做法,因为你应该使用保证存储数据的最小数据类型.

例如,当你知道你将存储的唯一数据是1,0或null时(最好将其扩展到2或3之后的几率),最好使用tinyint.

但是,我知道这样做的唯一原因是出于存储目的 – 在一行上使用1个字节而不是4个字节.

除了节省硬盘空间之外,使用tinyint(或smallint甚至bigint)对int的影响是什么?

解决方法

Disk space is cheap… that’s not the point!

不要考虑存储空间,而是考虑缓冲池和storage bandwidth.在极端情况下,CPU缓存和memory bus bandwidth.链接文章是系列的一部分,突出了集群密钥选择不佳的问题(INT与GUID与顺序GUID)但它突出了字节可以产生的差异.

最重要的信息是设计问题.在您达到VLDB区域之前,差异不会显示在适当规格的服务器上的单个数据库中,但如果您可以节省几个字节,为什么不这样做.

我想起了每个SQL实例中earlier question. 400数据库中描述的环境,大小从50mb到50GB不等.在该环境中按每个数据库为每个记录扫描几个字节可能会产生显着差异.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读