2013-05-31 53 views
0

我有一個在MySQL數據庫中構建的列,它存儲值爲-1000,在TINYINT,如果我將其更改爲10k VARCHAR哪一個會更好?Mysql TINYINT&VARCHAR性能

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

+1

取決於你在做什麼。 –

回答

3

如果您只是選擇值,那麼它並不重要。

但是,如果您在某種情況下使用它,那麼使用int時性能會更好。例如:

select * from your_table 
where your_column > 1000 

如果列是int只會工作,你並不需要將其轉換回數字。

通常 - 如果它是一個數字 - 將其存儲爲數字。

+0

varchar將是10k VARCHAR(3),10000 TINYINT(5),這個問題 – user2178521

+0

'tinyint(5)'是從'0'到'255'的小整數。 'varchar(3)'有3個或更多字節。反正varchar需要更多的空間。 –

+0

Thx很多!這真的很有幫助! – user2178521

0

更大的問題是 - 它會幫助你的項目嗎?用TINYINT你可以對它進行數學運算。你不能這樣做VARCHAR,因爲你的號碼是一個字符串。當然,你可以將字符串操作爲一個數字,但是這會讓你在性能上付出代價,並且需要額外的代碼(這可能會不必要地使SQL或其他語言複雜化)。

如果你打算讓一個值成爲一個數字 - 那麼千萬要把它作爲一個整數。有一個原因,真正聰明的人在字符串的& int之間做出了區別。