小编Sve*_*ven的帖子

如何为 MySQL 中具有 NULL 值的列设计索引?

我有一个包含 4000 万个条目的数据库,并希望使用以下WHERE子句运行查询

...
WHERE
  `POP1` IS NOT NULL 
  && `VT`='ABC'
  && (`SOURCE`='HOME')
  && (`alt` RLIKE '^[AaCcGgTt]$')
  && (`ref` RLIKE '^[AaCcGgTt]$')
  && (`AA` RLIKE '^[AaCcGgTt]$')
  && (`ref` = `AA` || `alt` = `AA`)
LIMIT 10 ;
Run Code Online (Sandbox Code Playgroud)

POP1是一个浮点列,也可以是 NULL。POP1 IS NOT NULL应该排除大约 50% 的条目,这就是我把它放在开头的原因。所有其他术语仅略微减少数量。

其中,我设计了一个pop1_vt_source似乎没有使用的索引,而使用了vt第一列的索引。解释输出:

| id | select_type | table | type | possible_keys                          | key                 | key_len | ref         | rows     | Extra       |
|  1 | SIMPLE      | myTab …
Run Code Online (Sandbox Code Playgroud)

mysql index

11
推荐指数
1
解决办法
3万
查看次数

标签 统计

index ×1

mysql ×1