【问题标题】:Alternatives to boolean flags in MySQL tables?MySQL表中布尔标志的替代品?
【发布时间】:2011-04-01 01:11:34
【问题描述】:

我在我的表格中使用了各种布尔标志,通过阅读一些关于优化性能的文章,我发现了一个广泛使用的技巧,以避免使用布尔标志。

什么是有效的替代品?一些例子将不胜感激。

【问题讨论】:

  • 能否请您发布一个指向建议不要使用布尔字段的资源的链接?

标签: mysql optimization boolean database-schema


【解决方案1】:

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

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

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

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

SELECT  *
FROM    mytable
WHERE   boolean_flag = 0

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

SELECT  *
FROM    mytable
WHERE   NOT boolean_flag

索引不会被使用。

【讨论】:

    【解决方案2】:

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

    喜欢

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

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多