微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

一般来说,我总是使用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不等.在该环境中按每个数据库为每个记录扫描几个字节可能会产生显着差异.

原文地址:https://www.jb51.cc/mssql/80027.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐