这是我当前的查询语句。(这是我现在的查询语句以及执行效率) SELECT
channel
FROM p_evaluate
WHERE 频道 ('xiaomin','xiao Huang','shlt','dhcpc','leizi','tianyue','hcyx','xxkp','tiantian','fuwuzhida ')
在此输入图片描述
数据库结构如图所示。(数据库结构说明)
在此输入图片描述
在此输入图片描述
如上所述,我尝试添加索引等方法,但似乎无法使用索引。(如上我尝试了添加索引等方法但显然用不到索引) 我预计会显着减慢他的询问速度。我预计会显着减慢他的询问速度。 (我希望能够显着降低他的查询速度)
在
WHERE
子句中硬编码维护 10 个左右的不同值非常麻烦,而且正如您所看到的,性能不太好。 更好的方法是将这些通道值移动到真正的表中(例如channel_values
),为其通道列建立索引,然后重写查询以使用联接:
table channel_values:
channel
xiaomin
xiaohuang
...
fuwuzhida
CREATE INDEX idx ON channel_values (channel);
SELECT p.channel
FROM p_evaluate p
INNER JOIN channel_values v
ON v.channel = p.channel