我在我的表中使用了各种布尔标志,并且通过阅读有关优化性能的一些内容,我遇到了一个广泛的提示,以避免使用布尔标记。
有效的替代方案是什么?一些例子将非常感谢。
答案 0 :(得分:4)
我在我的表中使用各种布尔标志,并从阅读中略过优化 性能我遇到了一个广泛的提示,以避免使用布尔标志。
在MySQL
中,BOOLEAN
只是TINYINT(1)
的别名。
这意味着布尔运算实际上是整数运算。
除其他外,这意味着在这样的查询中:
SELECT *
FROM mytable
WHERE boolean_flag = 0
可以使用boolean_flag
上的索引(如果有的话),而在这一个中:
SELECT *
FROM mytable
WHERE NOT boolean_flag
不会使用索引。
答案 1 :(得分:2)