我希望通过在SQL中为给定的数据类型定义最佳字节来优化我的空间。
问题1:如果我知道'US邮政编码‘列只能有5个字符,那么我会在这种情况下使用char(5)吗?
问题2:如果我知道列'house_shape_code‘最多可以有7个字符,那么我会在这种情况下使用int(7)吗?
我希望在这里提供指导,这样我就可以优化我的数据库的创建。
谢谢。
发布于 2019-07-27 20:52:36
不要专注于微观优化。你不太可能有足够的数据让这件事有很大的不同。
对于美国的邮政编码使用CHAR(5)或CHAR(9),这取决于您想要5位还是9位的邮政编码。(您甚至可以选择CHAR(10)来包含连字符。)不要使用数字类型,因为前导零是相关的。
对于第二个例子,我可能会推荐VARCHAR(7)。你没有一个数值,所以不需要使用一个数字--加法和乘法没有意义。
您仍然可以使用数字(毕竟,主键通常是数字)。如果是这样的话,一个4字节的数字就可以了--而且更适合索引,因为固定长度键的效率更高。您也可以使用数字,numeric(7, 0)。
将类型基于正确的类型来表示所需的值,而不是基于某种优化的概念。类型的选择不太可能对查询产生很大影响。
https://stackoverflow.com/questions/57235529
复制相似问题