2

我在我的表中使用了各种布尔标志,并且通过阅读一些关于优化性能的信息,我发现了一个广泛使用的避免使用布尔标志的提示。

有哪些有效的替代方案?一些例子将不胜感激。

4

2 回答 2

4

我在我的表中使用了各种布尔标志,并且通过阅读一些关于优化性能的信息,我发现了一个广泛使用的避免使用布尔标志的提示。

MySQL,BOOLEAN只是 的别名TINYINT(1)

这意味着布尔运算实际上是整数运算。

除其他外,这意味着在这样的查询中:

SELECT  *
FROM    mytable
WHERE   boolean_flag = 0

上的索引boolean_flag(如果有的话)可以使用,而在这个索引中:

SELECT  *
FROM    mytable
WHERE   NOT boolean_flag

不会使用索引。

于 2010-08-19T10:25:09.380 回答
2

如果你有很多布尔字段,你可以使用bit

而不是四个字段“真,假,假,真”存储一个数字“9”(二进制1001)

于 2010-08-19T10:22:41.990 回答