2010-08-19 41 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二进制)