2011-04-23 100 views
4

我有一些表中只能包含0 to 9的值的字段,以及其他可以包含0 or 1的字段。tinyint或varchar(1)?

爲了您的經驗,最好是將它與TINYINTVARCHAR(1)一起存放?

內存使用,速度識別它們,等等...

+1

tinyint大概無符號??? – 2011-04-23 16:52:06

回答

9

這取決於你將如何使用值:作爲字符串或數字。如果您打算將它們用作數字,TINYINT(1)肯定會更好,因爲mysql不需要進行不必要的轉換。對於1個字符的字符串,您可以使用CHAR(1)

+0

是的,他們將只是整數。所以Tinyint;) – markzzz 2011-04-23 15:17:10

2

它不應該的問題一個whol很多,但我會選擇CHAR(1)超過VARCHAR。

如果您將該值用作數字,即您將要添加或減去它們,請使用TinyInt。

否則,試着向前看。有沒有機會會有新的價值?那麼範圍會是什麼?

+0

嚴禁,他們被PHP腳本過濾,只能是數字。 Tinyint是1個字節,是啊不是那麼高:)我對像BOOLEAN這樣的存儲1或0字段的東西感興趣,但我認爲沒有:) – markzzz 2011-04-23 15:14:31