我正要写一个包含WHERE isok=1的查询.顾名思义,isok是一个布尔字段(实际上是一个TINYINT(1) UNSIGNED,根据需要设置为0或1).

在这个领域建立索引有什么性能提升吗?引擎(本例中为InnoDB)查找索引的性能是更好还是更差?

推荐答案

不是真的.你应该把它当作一本书来考虑.如果一本书中只有3种单词,并且你对它们进行了索引,那么你的索引页数将与普通页数相同.

如果一个值的记录相对较少,则性能会有所提高.例如,如果你有isok = 10条记录,其中10条是真的,那么如果你用isok = 1条进行搜索,这将非常有用

正如迈克尔·达兰特提到的,这也会使写作速度变慢.

编辑:可能重复:Indexing boolean fields

在这里,它解释了即使你有一个索引,如果你有太多的记录,它也不会使用索引.

Mysql相关问答推荐

金融交易的交易隔离级别

MySQL添加表会将&@@&qot;追加到表名

用于将具有多个状态更改日期列的单行转换为具有状态和时间戳的多行的SQL查询

如果我有USER列,如何将SQL CREATE TABLE与PostgreSQL和MySQL一起使用?

从表中 Select 具有不同顺序的列

为什么歌曲详细信息未显示在 Liked.handlebars 视图中?

MySQL函数 - 如何对select查询应用多个条件

如何在Pandas 中使用 to_sql

如何在 MySQL 中使用从 SELECT IF 返回的布尔值

MySQL如何在小时和分钟之间 Select 时间

巨大的未分区 MySQL 表问题

FreeBASIC 中的 MySQL 访问读取

MySQL按连续值和计数分组

判断一对记录是否属于多个组ID

加快 MySQL 中的行计数

为什么数据库行元组中的整数具有L后缀?

外键可以引用非唯一索引吗?

在 MySQL 中删除数据库返回删除数据库错误:66

MySQL错误 1005 (HY000): 无法创建表 'foo.#sql-12c_4' (errno: 150)

MySQL 更新连接表