我在mysql db中有一个列构建,它将值 - 10000存储在TINYINT
中,如果我将其更改为10k VARCHAR
哪一个会有更好的性能呢?
离。 10000,20000,30000 ......或10k,20k,30k ......
答案 0 :(得分:3)
如果您只是选择值,那么无关紧要。
但是如果你在where条件下使用它,那么使用int
可以提高性能。例如:
select * from your_table
where your_column > 1000
仅在列为int
且您无需将其转换回数字时才有效。
通常 - 如果是数字 - 将其存储为数字。
答案 1 :(得分:0)
更大的问题是 - 它会对你的项目有所帮助吗?使用TINYINT
,您可以对其执行数学运算。您不能使用VARCHAR
执行此操作,因为您的数字将是一个字符串。当然,你可以将字符串操作为一个数字,但这会花费你的性能以及制作额外代码的需要(这可能会不必要地使SQL或其他语言复杂化)。
如果您要将值设为数字 - 那么无论如何都要使它成为整数。有一个原因真的很聪明的人在字符串和&之间有所区别。 INT的。