1
我一直認爲bit
在像MySQL和MSSQL這樣的數據庫中比smallint
快。更好地使用「smallint」或「bit」?
現在,一個同事說,bit
不能被索引(我知道)等是更好地利用始終smallint
即使值永遠只是0
和1
。
我認爲只有0
和1
在smallint
指數沒有因少數不同值的任何優勢......
有人可以幫我解決這個問題?
我一直認爲bit
在像MySQL和MSSQL這樣的數據庫中比smallint
快。更好地使用「smallint」或「bit」?
現在,一個同事說,bit
不能被索引(我知道)等是更好地利用始終smallint
即使值永遠只是0
和1
。
我認爲只有0
和1
在smallint
指數沒有因少數不同值的任何優勢......
有人可以幫我解決這個問題?
你的同事是天真的 - 至少這個陳述是,因爲它確實忽略了眼前的真實問題。
可以對位進行索引,但只有2個值有用的索引的機會接近零,這就是爲什麼在大多數查詢中永遠不會使用它的原因。這不是固有的,而是它只有兩個值。
有趣的是,如果索引是smallint,它仍然只有兩個值。同樣的問題,沒有足夠的選擇性,基本上很可能根本沒有被使用,尤其是沒有其他指標存在。
現在,從邏輯上說,從位開始的下一步並不是小事,而是小小的一半。
位在存儲方面具有優勢。他們只能佔據一個位......如果你有多個:
http://technet.microsoft.com/en-us/library/ms177603.aspx
多達8個存儲在一個字節。