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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/mssql/80027.html

猜你在找的MsSQL相关文章