Mysql TINYINT& VARCHAR表现

时间:2013-05-31 01:24:11

标签: mysql

我在mysql db中有一个列构建,它将值 - 10000存储在TINYINT中,如果我将其更改为10k VARCHAR哪一个会有更好的性能呢?

离。 10000,20000,30000 ......或10k,20k,30k ......

2 个答案:

答案 0 :(得分:3)

如果您只是选择值,那么无关紧要。

但是如果你在where条件下使用它,那么使用int可以提高性能。例如:

select * from your_table
where your_column > 1000

仅在列为int且您无需将其转换回数字时才有效。

通常 - 如果是数字 - 将其存储为数字。

答案 1 :(得分:0)

更大的问题是 - 它会对你的项目有所帮助吗?使用TINYINT,您可以对其执行数学运算。您不能使用VARCHAR执行此操作,因为您的数字将是一个字符串。当然,你可以将字符串操作为一个数字,但这会花费你的性能以及制作额外代码的需要(这可能会不必要地使SQL或其他语言复杂化)。

如果您要将值设为数字 - 那么无论如何都要使它成为整数。有一个原因真的很聪明的人在字符串和&之间有所区别。 INT的。