草庐IT

rareIdentifier

全部标签

mysql - 由于选择性低(所有 NULL),MariaDB 不在 1 列自连接上使用索引

我们有一个查询在我们的一个表中查找重复项,基于一个很少可用的标识符,我们称之为rareIdentifierINT(10)UNSIGNEDNULL。我们在此列上有一个单列常规旧索引。有问题的查询如下所示:SELECTa.id,b.idFROMwidgetaINNERJOINwidgetbONa.rareIdentifier=b.rareIdentifier;问题是,对于最近的重复查找运行,我们实际上有0行的值为rareIdentifier;即所有行都为该列设置了NULL。MariaDB决定不使用索引,而是选择扫描整个表的Usingjoinbuffer(flat,BNLjoin)方法。但是