我正要写一个包含WHERE isok=1
的查询.顾名思义,isok
是一个布尔字段(实际上是一个TINYINT(1) UNSIGNED
,根据需要设置为0或1).
在这个领域建立索引有什么性能提升吗?引擎(本例中为InnoDB)查找索引的性能是更好还是更差?
我正要写一个包含WHERE isok=1
的查询.顾名思义,isok
是一个布尔字段(实际上是一个TINYINT(1) UNSIGNED
,根据需要设置为0或1).
在这个领域建立索引有什么性能提升吗?引擎(本例中为InnoDB)查找索引的性能是更好还是更差?
不是真的.你应该把它当作一本书来考虑.如果一本书中只有3种单词,并且你对它们进行了索引,那么你的索引页数将与普通页数相同.
如果一个值的记录相对较少,则性能会有所提高.例如,如果你有isok = 1
0条记录,其中10条是真的,那么如果你用isok = 1
条进行搜索,这将非常有用
正如迈克尔·达兰特提到的,这也会使写作速度变慢.
编辑:可能重复:Indexing boolean fields
在这里,它解释了即使你有一个索引,如果你有太多的记录,它也不会使用索引.