2010-08-19 57 views
2

我在表中使用各種布爾標誌,並從閱讀關於優化性能的一些信息,我遇到了一個廣泛的提示,以避免使用布爾標誌。替代MySQL表中的布爾標誌?

什麼是有效的替代方案?一些例子將不勝感激。

+0

請問您可以發佈一條鏈接,指向使用布爾字段的建議嗎? – Quassnoi 2010-08-19 10:39:23

回答

4

我使用不同的布爾國旗在我的表,並從閱讀一些關於優化 表現我碰到一個廣泛的尖端來避免使用布爾標誌。

MySQL,BOOLEAN只是TINYINT(1)的別名。

這意味着布爾操作實際上是整數操作。

也就是說,除其他外,是指在這樣的查詢:

SELECT * 
FROM mytable 
WHERE boolean_flag = 0 

boolean_flag索引,如果有的話,也可以使用,而在此一:

SELECT * 
FROM mytable 
WHERE NOT boolean_flag 

的索引將不會被使用。

2

,如果你有大量的布爾fieds的,你可以使用bit

,而不是四個領域「真的,假的,假的,真正的」存儲一個數字「9」(1001二進制)