Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql数据库-数字或字符串数据类型_Sql_Relational Database_Sqldatatypes - Fatal编程技术网

sql数据库-数字或字符串数据类型

sql数据库-数字或字符串数据类型,sql,relational-database,sqldatatypes,Sql,Relational Database,Sqldatatypes,我有一个关于关系数据库中代码定义的原则性问题。假设(案例1)我们有一个代码,例如国籍代码: 1 2 ... 23 ... 125 ... 这类代码的首选数据类型是什么(例如INT(3)或VARCHAR(3)?)。范围在1到999之间 现在,假设我们又有一个数字代码(案例2),但长度固定,例如4: 2342 3252 2641 ... 在这种情况下,合适的数据类型是什么 在这两种情况下都没有信息,即数字的位置没有意义,代码只是一个区分id 如有任何意见,我将不胜感激。谢谢。整数通常比varch

我有一个关于关系数据库中代码定义的原则性问题。假设(案例1)我们有一个代码,例如国籍代码:

1
2
...
23
...
125
...
这类代码的首选数据类型是什么(例如
INT(3)
VARCHAR(3)
?)。范围在1到999之间

现在,假设我们又有一个数字代码(案例2),但长度固定,例如4:

2342
3252
2641
...
在这种情况下,合适的数据类型是什么

在这两种情况下都没有信息,即数字的位置没有意义,代码只是一个区分id


如有任何意见,我将不胜感激。谢谢。

整数通常比varchars搜索更快,占用的空间更小,所以我想说,如果没有其他因素,请选择整数。

整数通常比varchars搜索更快,占用的空间更小,所以如果没有其他因素参与,选择整数。

字符串在数据库中越大,速度越慢。如果你不需要像“0289”这样的东西,那么使用整数

若性能对您来说非常重要,那个么您可以将其作为整数“289”存储在数据库中,并在应用程序中以编程方式将其保存到“0289”,但这取决于实际情况


顺便说一句,数据库中的字符串索引不是首选方法。

数据库中的字符串越大,速度越慢。如果你不需要像“0289”这样的东西,那么使用整数

若性能对您来说非常重要,那个么您可以将其作为整数“289”存储在数据库中,并在应用程序中以编程方式将其保存到“0289”,但这取决于实际情况


顺便说一句,数据库中的字符串索引不是首选方式。

答案可能取决于它实际上是国籍代码还是其他什么,因为国际化中使用了标准缩写,例如“en-us”。但通常你会使用某种形式的整数。Int16,int32,smallint。取决于RDBMS中可用的内容。答案可能取决于它实际上是国籍代码还是其他代码,因为国际化中使用了标准缩写,例如“en-us”。但通常你会使用某种形式的整数。Int16,int32,smallint。取决于RDBMS中提供了什么。非常感谢。性能是选择整数的一个很好的理由。@giordano当然,性能的提高/降低将取决于RDBMS和您选择的
INT
类型,所以请您自己测试以确定。非常感谢。性能是选择整数的一个好理由。@giordano当然,性能的增益/损失将取决于RDBMS和您选择的
INT
类型,所以请您自己测试,以确保。谢谢!我将使用整数。您关于索引的陈述引发了一个问题:索引对于分类变量没有意义,也就是说,它必须转换/映射为整数,然后索引新变量?或者,索引的分类变量是否比未索引的分类变量性能更好,但它不是最优的,并且会在非常庞大和繁忙的数据库中产生问题?谢谢!我将使用整数。您关于索引的陈述引发了一个问题:索引对于分类变量没有意义,也就是说,它必须转换/映射为整数,然后索引新变量?或者,索引的分类变量是否比未索引的分类变量性能更好,但它不是最优的,并且会在非常庞大和繁忙的数据库中产生问题?