user表:
user_right表:
user_right 添加了一个联合索引 (userid,chusheng)
SELECT * FROM user
AS a LEFT JOIN user_right
AS b ON a.id = b.userid
WHERE b.chusheng
= 1
我想使用user_right 表的这个索引 结果explain 没有使用到
为什么?我应该怎么做才能使用到user_right表中的索引
user表:
user_right表:
user_right 添加了一个联合索引 (userid,chusheng)
SELECT * FROM user
AS a LEFT JOIN user_right
AS b ON a.id = b.userid
WHERE b.chusheng
= 1
我想使用user_right 表的这个索引 结果explain 没有使用到
为什么?我应该怎么做才能使用到user_right表中的索引
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答1.8k 阅读
3 回答2k 阅读
1 回答3.6k 阅读
首先,联合索引在顺序使用的情况下才可用到。你的情况需要单独建立chusheng的索引。
另外如果chusheng字段类型与查询不符,也是无法使用索引的。
比如chusheng是varchar,那查询需要使用 引号 括起的值,才可以用到索引。
例如:
(是
b.chusheng = '1'
而不是b.chusheng = 1
)